我正在尝试使用JavaScript进行正则表达式搜索,但不适用于$
和+
等特殊字符。
var string = "Keto After 50 $20 CPA+FS";
string.search(/Keto After 50 $20 CPA F+S/g);
我希望匹配结果为0而不是-1。
答案 0 :(得分:0)
欢迎!
我们可能只想转义元字符:
(Keto After 50 \$20 CPA\+FS)
const regex = /(Keto After 50 \$20 CPA\+FS)/gm;
const str = `Keto After 50 \$20 CPA+FS`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
答案 1 :(得分:0)
您可以使用反斜杠(+----------------+-----------------+
| TABLE_NAME | SUM(TABLE_ROWS) |
+----------------+-----------------+
| calls | 7533 |
| courses | 179 |
| course_modules | 298 |
| departments | 58 |
| faculties | 236 |
| modules | 169 |
| searches | 25423 |
| sections | 532 |
| universities | 57 |
| users | 10293 |
+----------------+-----------------+
)来转义这些特殊字符:
\
此外,您的正则表达式中有一个错字。我想您是要匹配“ ... CPA + FS”,而不是“ ... CPA F + S”。
答案 2 :(得分:0)
特殊字符前应加反斜杠。 在JavaScript正则表达式中,以下字符是特殊的:
[ \ ^ $ . | ? * + ( )
因此您的代码应如下:
var string = "Keto After 50 $20 CPA+FS";
string.search(/Keto After 50 \$20 CPA\+FS/g);