我有一个像这样的正则表达式:
var filter = /^[ A-Za-z0-9_@./#&+-]*$/;
如果输入字段中没有字符或者字符小于 14,我希望这个正则表达式返回 true。我尝试使用这个:
var filter = /^[ A-Za-z0-9_@./#&+-]{0, 15}*$/;
但是这个正则表达式永远不会返回真值。即使我满足条件,它也总是返回 false。怎么了?
最佳答案
空格在正则表达式中很重要。空格字符使您的 {n,m}
量词无效,导致 {0, 15}*
被评估为文字字符串 "{0, 15"
,后跟零个或多个 }
。
另外,你可以将[A-Za-z0-9_]
压缩成\w
:
var filter = /^[ \w@./#&+-]{0,15}$/;
关于javascript - 修改此正则表达式以接受 0 到 15 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17466526/