JS正则表达式语法

时间:2012-04-27 19:51:09

标签: javascript regex

我想在JavaScript中做一个正则表达式,它只允许带有数字的字符串,这个符号:()+和一个空格。长度为5-16个字符。

请注意:字符串中字符的顺序并不重要。

对此有什么选择?

由于

2 个答案:

答案 0 :(得分:4)

这个怎么样:

/^[0-9 ()+]{5,16}$/

自己构建它很容易。 ) 首先,当您施加严格的限制时,您应该检查整个字符串,因此正则表达式应该包含在/^...$/中。

其次,如果你只需要一些特定的字符,你应该使用字符类:将它们全部写成[...]形式。在您的情况下,您可以快捷方式:仅使用/^[0123456789 ()+]$/替换/^[0-9 ()+]$/

最后,使用{$ min,$ max}形式说明一些数量限制:在您的情况下为{5,16}。把它混合成你到目前为止所得到的 - 瞧!你解决了这个任务。 )

答案 1 :(得分:1)

if( myText.match(/\A[0-9 ()+]{5,16}\Z/) ) {
    // Yay!
}

虽然我正确地指出我缺少锚字符,但使用^ $只会匹配字符串的,因此,“823479898237 \ n328742987”会匹配,尽管太长了。< / p>