无法格式化RegEx以处理美元符号($)

时间:2018-03-27 17:45:11

标签: regex

我一直试图找出如何使用RegEx文本搜索来处理美元符号。我们说我有两个字符串:

TestPerson One | 123456789 | ($ 100.00)| $ 0 | 03/27/2018 |打开

TestPerson Two | 987654321 | ($ 250.00)| (25美元)| 03/27/2018 |打开

使用jQuery,我正在创建RegEx。如果我要搜索TestPerson,RegEx将如下所示:

/^(?=.*\bTestPerson).*$/i

这将返回两个字符串,因为它们都包含TestPerson。如果我尝试搜索$,即使两个字符串都是$,我也会得到零结果。我知道美元符号是RegEx中的一个特殊字符,但是转义它也不起作用。

如何将我的RegEx格式化为搜索$将返回两个结果?

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为这似乎是多线修改器开关问题。我猜你关闭了多线修改器并实现了正则表达式,因此意外输出结果。 Demo

如果您打开了多线修改器,则可以获得所需的输出。 Demo

答案 1 :(得分:-1)

要检查字符串是否包含子字符串,您不要使用正则表达式:JavaScript具有字符串方法includes()。此方法在字符串中搜索给定值,如果字符串中存在,则返回true,否则返回false



var a = [
  'TestPerson One | 123456789 | ($100.00) | $0 | 03/27/2018 | Open',
  'TestPerson Two | 987654321 | ($250.00) | ($25) | 03/27/2018 | Open'
]

a.forEach(function(s) {
  console.log(s.includes('TestPerson') && s.includes('$'))
})