Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 无法格式化正则表达式以处理美元符号($)_Regex - Fatal编程技术网

Regex 无法格式化正则表达式以处理美元符号($)

Regex 无法格式化正则表达式以处理美元符号($),regex,Regex,我一直在想如何让正则表达式文本搜索与美元符号一起工作。假设我有两个字符串: TestPerson One | 123456789 |($100.00)|$0 | 2018年3月27日|开放 测试人员二号| 987654321 |($250.00)|($25)| 2018年3月27日|开放 我使用jQuery创建正则表达式。如果要搜索TestPerson,正则表达式将如下所示: /^(?=.*\bTestPerson).*$/i 这将返回两个字符串,因为它们都包含TestPerson。如果我尝试

我一直在想如何让正则表达式文本搜索与美元符号一起工作。假设我有两个字符串:

TestPerson One | 123456789 |($100.00)|$0 | 2018年3月27日|开放

测试人员二号| 987654321 |($250.00)|($25)| 2018年3月27日|开放

我使用jQuery创建正则表达式。如果要搜索TestPerson,正则表达式将如下所示:

/^(?=.*\bTestPerson).*$/i
这将返回两个字符串,因为它们都包含TestPerson。如果我尝试搜索$,即使两个字符串都包含$,结果也为零。我知道美元符号在正则表达式中是一个特殊字符,但转义它也不起作用

如何将正则表达式格式化为搜索$将返回两个结果的位置


谢谢

要检查字符串是否包含子字符串,您不需要regex:JavaScript具有string方法。此方法在字符串中搜索给定值,如果该值存在于字符串中,则返回
true
,否则返回
false

var a=[
“TestPerson One | 123456789 |($100.00)|$0 | 03/27/2018 |开放”,
“测试人员二号| 987654321 |($250.00)|($25)| 2018年3月27日|开放”
]
a、 forEach(函数){
console.log(s.includes('TestPerson')&&s.includes('$'))

})
我认为这似乎是多行修改器的开关问题。我猜您关闭了多行修饰符并实现了正则表达式,因此会产生意外的输出结果


如果启用“多行”修改器,则可以获得所需的输出

按照帖子的说法,转义它是行不通的。那么问题就不清楚了。OP希望获得的最终结果是什么?如果在搜索中输入$,我希望看到两个示例行都返回了匹配项。如果输入TestPerson,我希望看到两个行都返回了匹配项。@CameronGray只需使用
str.includes()
str.includes('TestPerson')
str.includes('$'))
。不需要正则表达式。