尝试匹配名字头衔..或不匹配视情况而定

时间:2011-06-20 19:17:16

标签: javascript regex jquery-validate

如果有人在我设置的输入框中输入标题,我会尝试返回不匹配的内容。

到目前为止我所拥有的是:

^\s*(?!Dr|Mr|Mrs|Miss|Ms).*?$

这样可以正常工作,除非它不匹配“Drake”,“Missy”,它甚至匹配“Dr.Dennis” 或者“丹尼斯博士”..我知道在人的头衔上进行反向和匹配会更容易,但我必须重写我们的整个验证规则,因为所有其他人都会在不匹配时返回匹配和错误。

任何人都知道我该怎么做?

1 个答案:

答案 0 :(得分:3)

您可以像这样添加单词边界到您的负面向前

^\s*(?!(?:Dr|Mr|Mrs|Miss|Ms)\b).*?$

here on Regexr

希望我能正确理解你。这个单词边界\b确保你的标题后面有一个非单词字符,这样它就不会忽略像德雷克这样的东西。

(?:)是一个非捕获组,这意味着列表中的内容不会像普通组()那样放在变量中。