JavaScript正则表达式否定完全字符串匹配

时间:2017-12-22 05:39:55

标签: javascript html regex validation

HTML(JavaScript)中是否有一种方法可以编写正则表达式来否定精确的字符串匹配?

我想确保输入不等于" foo"。只有" foo"必须通过验证,但" fooo"必须被允许。

换句话说,我正在寻找对这个正则表达式的否定:

<input pattern="^foo$" ...>

3 个答案:

答案 0 :(得分:3)

一种可能的方法是将字符串锚点(^)的开头与包含目标字符串和字符串结束锚点($)的负前瞻相结合:

/^(?!foo$)/

Demo

pattern模式在该帐户中很有趣 - 它必须匹配字符串中的某些内容,这就是为什么原始方法不起作用的原因。但这确实有效:

<input pattern="(?!foo$).*">

答案 1 :(得分:0)

您可以使用此正则表达式:

\bfooo\b

答案 2 :(得分:0)

如果允许使用Javascript,为什么不直接否定匹配的结果呢?

if (!yourString.match(/^foo$/)) {
    ...
}