我想在 JavaScript 中做一个正则表达式模式,它只允许一个带有数字的字符串和这个符号:()+ 和一个空格。长度为 5-16 个字符。
请注意:字符串中字符的顺序并不重要。
什么是正确的模式?
谢谢
我想在 JavaScript 中做一个正则表达式模式,它只允许一个带有数字的字符串和这个符号:()+ 和一个空格。长度为 5-16 个字符。
请注意:字符串中字符的顺序并不重要。
什么是正确的模式?
谢谢
这个怎么样:
/^[0-9 ()+]{5,16}$/
自己构建它很容易。) 首先,当你施加严格的限制时,你应该检查整个字符串,所以正则表达式应该被包装到/^...$/
.
其次,如果你只需要一些特定的字符,你应该使用字符类:将它们全部写成 [...] 形式。在您的情况下,您可以使用快捷方式:替换/^[0123456789 ()+]$/
为 just /^[0-9 ()+]$/
。
最后,用 {$min, $max} 形式陈述一些定量限制:在你的情况下,这将是{5,16}
. 把它和你到目前为止得到的东西混合在一起——瞧!你解决了任务。)
if( myText.match(/\A[0-9 ()+]{5,16}\Z/) ) {
// Yay!
}
虽然正确指出我缺少锚字符,但使用 ^$ 只会匹配字符串的行,因此,“823479898237\n328742987”会匹配,尽管太长了。