我想使用正则表达式验证 JavaScript 中的居住地址,但我对正则表达式了解不多,我尝试过构建自己的正则表达式(/^[a-zA-Z\s](\d)?$/
)但它似乎无法正常工作。
我想要实现的是允许字母、空格和至少一个数字(这是必需的),并且还应该可以插入斜杠/
但这不应该是必需的。
有人能帮我吗?
我将帮助您开始,但是当您习惯了正则表达式时,您会发现自己变得更加具体。首先,让我们检查一下你的正则表达式:
/^[a-zA-Z\s](\d)?$/
这里需要注意的重要一点是,这个正则表达式最多只能匹配两个字符的字符串!字符类,[ ... ]
,匹配一个single字符:在您的情况下,字母和空格。您需要将其与所谓的量词, e.g. *
意思是“零个或多个”,+
意思是“一个或多个”,并且?
意思是“零或一”。您在其他地方使用过量词,(\d)?
,您所说的是“零或一个”数字字符。但你真正想要的看起来更像是这样的:
/^[a-zA-Z\s\d\/]+$/
在这里,我们说的是“一个或多个”字母、空格、数字或斜杠(请注意,必须使用反斜杠转义正斜杠)。
最后你说想要require“至少一个”数字。这可以通过正则表达式中更高级的构造来实现,称为“环视断言”。你要这个:
/^(?=.*\d)[a-zA-Z\s\d\/]+$/
这尤其是一个积极的前瞻断言,你可以自己研究一下。在没有前瞻断言的情况下执行此操作的另一种方法是:
/^[a-zA-Z\s\d\/]*\d[a-zA-Z\s\d\/]*$/
这显然更复杂,但是当您能够理解这一点时,您就知道您已经很好地理解了正则表达式。祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)