Regexp从Javascript开始

时间:2015-07-19 02:35:58

标签: javascript regex

[[23, "Jordan"], [8, "Bryant"]]

如何匹配字符串以921或931开头跟随5个任意数字?

2 个答案:

答案 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");

这意味着:

  • ^ - 字符串的开头
  • 其次是921或931
  • 后跟5位数字
  • $ - 字符串的结尾