企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
正则表达式中那些有特殊含义的元字符,如果要匹配它们本身,就需要在它们前面要加上反斜杠。比如要匹配`+`,就要写成`\+`。 ~~~ /1+1/.test('1+1') // false /1\+1/.test('1+1') // true ~~~ 上面代码中,第一个正则表达式之所以不匹配,因为加号是元字符,不代表自身。第二个正则表达式使用反斜杠对加号转义,就能匹配成功。 正则表达式中,需要反斜杠转义的,一共有12个字符:`^`、`.`、`[`、`$`、`(`、`)`、`|`、`*`、`+`、`?`、`{`和`\`。需要特别注意的是,如果使用`RegExp`方法生成正则对象,转义需要使用两个斜杠,因为字符串内部会先转义一次。 ~~~ (new RegExp('1\+1')).test('1+1') // false (new RegExp('1\\+1')).test('1+1') // true ~~~ 上面代码中,`RegExp`作为构造函数,参数是一个字符串。但是,在字符串内部,反斜杠也是转义字符,所以它会先被反斜杠转义一次,然后再被正则表达式转义一次,因此需要两个反斜杠转义。