Javascript 在JS中是否可以定义regexp,在输入结束时对给定文本进行测试时会给出false?
我需要一个JS中的regexp模式,在输入结束时对给定文本进行测试时,该模式会给出false。 例如:Javascript 在JS中是否可以定义regexp,在输入结束时对给定文本进行测试时会给出false?,javascript,regex,pattern-matching,Javascript,Regex,Pattern Matching,我需要一个JS中的regexp模式,在输入结束时对给定文本进行测试时,该模式会给出false。 例如: /(?!not this text)$/.test("blablabla not this text") === false /(?!not this text)$/.test("blablabla this text") === true 但是那样不行!以下是一些实验: console.log("<expected>: <actual>"); console
/(?!not this text)$/.test("blablabla not this text") === false
/(?!not this text)$/.test("blablabla this text") === true
但是那样不行!以下是一些实验:
console.log("<expected>: <actual>");
console.log("false:" + /^(?!<asd>)/.test("<asd>"));
console.log("true:" + /^(?!<asd>)/.test("<asg>"));
console.log("false:" + /(?!<asd>)$/.test("<asd>"));
console.log("true:" + /(?!<asd>)$/.test("<asg>"));
console.log("false:" + /(<asd>){0}$/.test("<asd>"));
console.log("true:" + /(<asd>){0}$/.test("<asg>"));
console.log(“:”);
log(“false:+/^(?!)/.test(“”));
log(“true:+/^(?!)/.test(”));
log(“false:+/(?!)$/.test(“”));
log(“true:+/(?!)$/.test(“”));
log(“false:”+/(){0}$/.test(“”));
log(“true:”+/(){0}$/.test(“”));
给出输出:
<expected>: <actual>
false:false
true:true
false:true
true:true
false:true
true:true
:
假:假
真的:真的
假:真
真的:真的
假:真
真的:真的
问题:
在JS中,是否可以定义在输入结束时对给定文本进行测试时给出false的regexp?是的,可能:
/^(?:(?!not this text$).)*$/
请注意,正则表达式必须锚定在两端,前瞻子表达式必须锚定在末尾,而不是开头
另一种方法是:
/^(?!.*not this text$).*$/
同样,正则表达式作为一个整体必须锚定在两端才能工作。如果这是唯一的测试,只需:
if (!/not this text$/.test(str));
谢谢我想,这个解决方案并不直观。我已经测试过了,第一个失败了,第二个没问题。他们都为我工作。目标字符串是否包含换行符?如果是这样,您应该使用
[\s\s]
而不是
。