我需要一个满足以下要求的正则表达式。
试过这个,但它没有按预期工作。
^[a-z\s]{0,50}[.\-']*[a-z\s]{0,50}[.\-']*$
请让我知道,如果有人做对了。
答案 0 :(得分:4)
好吧,你可以写一些怪异的正则表达式,这是无法读取或维护的,或者只是编写代码来说明规则是什么:
function validate(str) {
var not_too_long = str.length <= 50,
has_no_dots = !/\./.test(str),
not_too_many_specials = (str.match(/[^\w\s]/g) || []).length <= 3;
return not_too_long && has_no_dots && not_too_many_specials;
}
根据您对“特殊字符”的定义进行适当调整。