我希望在字符串中找到它:XXXX-XXX-XXX其中X是任意数字。
我需要使用JavaScript在字符串中找到这个,所以奖励积分给那些能为我提供JavaScript的人。我试图创建一个正则表达式,并提出了这个:^[0-9]{4}\-[0-9]{3}\-[0-9]{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);