我想在JavaScript中做一个正则表达式,它只允许带有数字的字符串,这个符号:()+和一个空格。长度为5-16个字符。
请注意:字符串中字符的顺序并不重要。
对此有什么选择?
由于
答案 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>