首页 > 解决方案 > 使用正则表达式验证家庭地址

问题描述

我是正则表达式的新手,我正在尝试使用正则表达式创建一些验证过程。我正在检查给定的家庭地址或位置地址是否有效。我也在使用正则表达式验证其他值,但它们都工作得很好,但是这个只检查输入的第一个字符。尝试在值的任何部分输入其他特殊字符,该函数将返回 true。

我只允许字母、数字、句点、逗号和空格。

这是代码[排除了工作代码和正则表达式]:

document.querySelector(".review-input").addEventListener("click", reviewSubmittedForm);

function runValidationForAddress(stringToBeChecked) {
  var regex = /^[a-zA-Z0-9\\,\\.\s]/g;
  if (regex.test(stringToBeChecked) === true) {
    //Valid
    console.log("String is valid.");
    return true;
  }
  else {
    //Invalid
    console.log("String is invalid! Please re-enter");
    return false;
  }
}

function reviewSubmittedForm() {
  var addressInput = document.querySelector(".address-input");
  if (runValidationForAddress(addressInput.value) === true) {
    console.log("Pass");
  }
  else {
    console.log("Denied");
  }
}
<input type="text" class="address-input" value="1600 Amphitheatre Parkway">
<input type="button" class="review-input" value="Submit">

<p>
After submitting, try to copy and paste this other location addresses:<br><br>
@1600 Amphitheater Parkway<br>
1600 @Amphitheatre $Parkway<br>
1600 #Amphitheatre Parkway<br>
</p>

标签: javascripthtmlregexvalidation

解决方案


用于^[\w\s ,.]+$您的验证。

您可以在https://regex101.com/r/q6LoSE/4在线查看。


推荐阅读