【问题标题】:Check is a string is not exactly some other word using regexCheck is a string is not exactly some other word using regex
【发布时间】:2017-05-01 21:30:38
【问题描述】:

我有一个案例,我需要在 javascript 中使用正则表达式来查找字符串是否与单词完全不匹配。

我正在尝试负前瞻。

var reg = /(?!(^Hello$))/
var a = "Hello";
var b = "something else";


console.log(reg.test(a)) // I need this to be false
console.log(reg.test(b)) // I need this to be true

我怎样才能做到这一点?在 Javascript 中,控制台日志都是真实的

【问题讨论】:

  • 如果我错了,请纠正我,但你不能在这里使用字符串相等吗?
  • 这必须用正则表达式来完成。

标签: javascript regex-negation


【解决方案1】:

问题在于您没有锚定整个正则表达式,因此它可以匹配输入字符串中的任何点。不会一开始就匹配,但是会在'H'之后匹配,因为'H'后面没有匹配到(?!(^Hello$))的字符串,从而满足负前瞻。

要让你的正则表达式做你想做的事,锚定它:

var reg = /^(?!Hello$)/;

【讨论】:

  • 谢谢你.. 那行得通。我们有一个配置文件,我们在其中指定正则表达式来验证输入。另一种方法是添加新的验证器,如“不匹配”。我试图使用现有的正则表达式验证器来实现这一点。
  • @prakash 如果这需要处理用户输入的数据,您将需要考虑如何转义匹配字符串中的任何正则表达式特殊字符。例如,如果他们想匹配“not $0.00”怎么办?我认为实现不使用正则表达式的不等于会更快、更可靠。
猜你喜欢
  • 1970-01-01
  • 2021-04-22
  • 2022-12-13
  • 2021-05-05
  • 2020-11-08
  • 2013-10-20
  • 1970-01-01
  • 1970-01-01
  • 2022-12-26
相关资源
最近更新 更多