首页 > 解决方案 > 有人可以使用 {} 解释 JS 正则表达式限制吗

问题描述

好的,所以我编写了一个函数,我将在其中测试输入字符串并查看它是否匹配几种不同格式中的一种。我的所有测试似乎都运行良好,除了最后一种格式,我只使用我的正则表达式和 .test()...

/\d{10}/ 允许一个比我想要的更长的字符串

/\^d{10}!?.*$/ 不允许正确长度的字符串(以及与此类似的其他组合)

我尝试了其他组合,但最终我求助于使用 if 语句来检查字符串长度,但我想知道为什么这不起作用,如果有人能帮助我,我应该怎么做!谢谢

标签: javascriptregex

解决方案


我怀疑你不想要那个反斜杠。

这个正则表达式:

 /\^d{10}!?.*$/

...在字符串末尾寻找“十位数字,前面有一个文字^$。(因为锚点。)

毫无疑问,你的意思是^也成为一个锚。这个正则表达式:

 ^\d{10}$

... 查找包含十位数字的字符串。字符将^搜索锚定到字符串的开头,$字符将其锚定到末尾。换句话说,“十位数字从字符串的开头开始,并且也在字符串的结尾结束。” “仅由十位数字组成的字符串。”


推荐阅读