如何创建此RegExp

时间:2012-03-26 01:26:17

标签: javascript regex

我希望在字符串中找到它:XXXX-XXX-XXX其中X是任意数字。

我需要使用JavaScript在字符串中找到这个,所以奖励积分给那些能为我提供JavaScript的人。我试图创建一个正则表达式,并提出了这个:^[0-9]{4}\-[0-9]{3}\-[0-9]{3}$

另外,我很想知道你们用来创建正则表达式的任何备忘单或程序。

3 个答案:

答案 0 :(得分:3)

i suppose this is what you want

\d{4}-\d{3}-\d{3} 
怀疑? Google为“RegEx测试人员”

答案 1 :(得分:1)

尝试:

^[0-9]{4}\-[0-9]{3}\-[0-9]{3}$

由于-不是元字符,因此无需转义它 - 因此您正在寻找显式的反斜杠字符。

此外,您已在字符串的开头和结尾处锚定匹配项 - 这将仅匹配包含数字的字符串。 (好吧,假设其余的都是正确的。)

我知道大多数人喜欢{3}计数的样式,但当匹配的东西是一个数字时,我发现它更清晰:

\d\d\d\d-\d\d\d-\d\d\d

显然,如果你想将它扩展到匹配的十六进制数字,扩展这个数字会很糟糕,但我认为这比其他选择更容易辨认:

\d{4}-\d{3}-\d{3}
[[:digit:]]{4}-[[:digit:]]{3}-[[:digit:]]{3}
[0-9]{4}-[0-9]{3}-[0-9]{3}

选择最简单易读的内容。

我倾向于使用perlre(1)联机帮助页作为我的主要参考资料,充分了解它比许多正则表达式引擎更具特色。考虑到perlre联机帮助页在大多数系统上的可用性,我准备处理差异。

答案 2 :(得分:-1)

var result = (/\d{4}\-\d{3}\-\d{3}/).exec(myString);