[[23, "Jordan"], [8, "Bryant"]]
如何匹配字符串以921或931开头跟随5个任意数字?
答案 0 :(得分:3)
tl; dr:使用这样的正则表达式文字:
var re = /^(9[23]1)\d{5}$/;
alert(re.test("93111111"));
<强>解释强>
首先,删除第一个$
:
RegExp("^(921|931)\\d{5,5}$").test("93111111");
$
仅匹配字符串的结尾,因此当您在(921|931)
之后有一个正则表达式时,您的正则表达式永远不会匹配。此外,请注意您需要双重转义\
,因为它在引号中,如评论中所述。
您可以通过将{5,5}
简化为{5}
来实际简化:
RegExp("^(921|931)\\d{5}$").test("93111111");
更好的是,使用正则表达式文字并将(921|931)
简化为(9[23]1)
:
var re = /^(9[23]1)\d{5}$/;
alert(re.test("93111111"));
这是迄今为止最干净,最容易阅读的版本。
答案 1 :(得分:-1)
你关闭但是你有错误。 $
表示匹配字符串的结尾。这意味着你不能拥有多个,因为字符串只有一端。此外,{5,5}
可以简化为{5}
。尝试:
RegExp("^(921|931)\\d{5}$").test("93111111");
这意味着: