如何检查两个正则表达式是否相同?

sen*_*ett 2 javascript regex equality

如果是 JavaScript,/\.scss$/则为正则表达式。我想检查一个正则表达式是否与另一个正则表达式完全相同:

/\.scss$/ === /\.scss$/ // false
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?请注意,我不关心正则表达式匹配什么,我只关心正则表达式的定义方式。

sen*_*ett 5

使用.toString

/\.scss$/.toString() === /\.scss$/.toString() // true
Run Code Online (Sandbox Code Playgroud)

使用RegExp对象时可以更轻松地了解发生了什么:

new RegExp("ab+c").toString() === new RegExp("ab+c").toString() // true
Run Code Online (Sandbox Code Playgroud)

然而

new RegExp("ab+c") === new RegExp("ab+c") // false
Run Code Online (Sandbox Code Playgroud)

  • 两个正则表达式“aa”和“a{2}”是相同的,如何比较它们?`toString()` 在这里会失败。 (2认同)