在JS中是否可以定义regexp,当在输入结束时对给定文本进行测试时,该regexp会给出false
Is it possible in JS to define regexp that would give false when testing on given text in the end of input?
我需要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.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>"));
输出:
<expected>: <actual>
false:false
true:true
false:true
true:true
false:true
true:true
问题:JS中是否可以定义regexp,当在输入结束时对给定文本进行测试时,该regexp会给出false?
是的,有可能:
/^(?:(?!not this text$).)*$/
请注意,正则表达式必须锚定在两端,前瞻子表达式必须锚定在末尾而不是开头。
另一种方法是:
/^(?!.*not this text$).*$/
同样,正则表达式作为一个整体必须锚定在两端才能工作。
如果这是唯一的测试,那么:
if (!/not this text$/.test(str));
相关文章:
- JavaScript正则表达式文本与RegExp对象
- 如何使用RegExp将文本附加到匹配项中
- JavaScript RegExp替换文本
- 我需要一个RegExp,它只接受文本框中的斜杠
- 用于匹配文本的Javascript RegExp,而不是't是HTML标记的一部分
- 在大文本中添加数字RegExp
- 在JS中是否可以定义regexp,当在输入结束时对给定文本进行测试时,该regexp会给出false
- Regexp JavaScript中的大文本
- 在javascript中使用RegExp从记事本粘贴文本时,Textarea需要花费大量时间来验证文本
- Regexp来匹配文本.“;和空白行
- Javascript文本regexp vs regexp对象,循环中的实例
- 何时使用RegExp构造函数vs正则表达式文本
- 从用户提交的文本中获取属性!RegExp
- 有人可以帮助我提取文本与RegExp
- RegExp:匹配可选的换行文本
- 如何使一个regexp在js分裂打破使用特殊的文本字符
- 如何选择特定的文本之间的HTML标签与RegExp
- 我可以在文本的第二部分中使用regexp表达式的一部分吗?替换功能
- RegExp 匹配一个没有引号的引用文本 - JavaScript
- 使用Regexp查找/替换文本