使用正则表达式询问用户家庭住址

Asking user for home address using Regex

提问人:user1234567100 提问时间:2/26/2023 更新时间:2/26/2023 访问量:23

问:

我想使用正则表达式提示用户输入有效的家庭住址。

我已经在 regex101.com 上使用的正则表达式进行了测试,但无论我写什么,代码仍然不起作用......

应通过的地址示例:26 John Street, City Road

我做错了什么?

函数按钮1() { let address = prompt(“请输入您的地址”); var regex = /[\d+[ ](?:[A-Za-z0-9.-]+[ ]?)+(?:大道|车道|道路|林荫大道|驱动|街道|Ave|博士|RD|大道|Ln|St).?]/;

  if (regex.test(address)) {
    return true;
  } else {
    console.log("Please enter a valid address");
    return false;

  }
}
javascript html onclick 街道地址

评论

0赞 T.J. Crowder 2/26/2023
“我做错了什么?”恕我直言,您做错的假设是地址符合特定格式。他们没有。地址几乎可以是任何东西。只需确保用户填写了某些内容,仅此而已。否则,您将阻止某人提供正确的地址。(哎呀,据我所知,上面甚至不允许公寓号码,更不用说移动房屋公园的空间号码了。

答:

0赞 ProfDFrancis 2/26/2023 #1

我认为你不应该把整个表情都放在里面,而且[]

这导致它不是一系列一个接一个的符号,而是一组替代方案(我认为这不是你的意图)。

所以试试这个:

function button1() {
  //  let address = prompt("Please enter your address");
  const address = "26 John Street, City Road"

  var regex = /\d+[ ](?:[A-Za-z0-9.-]+[ ]?)+(?:Avenue|Lane|Road|Boulevard|Drive|Street|Ave|Dr|Rd|Blvd|Ln|St).?/;

  if (regex.test(address)) {
    console.log("Valid")
    return true;
  } else {
    console.log("Please enter a valid address");
    return false;

  }
}

button1()