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

Javascript 如何检查两个正则表达式是否相同?,javascript,regex,equality,Javascript,Regex,Equality,如果JavaScript,/\.scss$/是正则表达式。我想检查一个正则表达式是否与另一个正则表达式完全相同,但是: /\.scss$/ === /\.scss$/ // false 我该怎么做?请注意,我不关心正则表达式匹配的内容,我只关心正则表达式的定义方式。使用。toString: /\.scss$/.toString() === /\.scss$/.toString() // true 使用对象时更容易看到发生了什么: 鉴于 new RegExp("ab+c") === new R

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

/\.scss$/ === /\.scss$/ // false

我该怎么做?请注意,我不关心正则表达式匹配的内容,我只关心正则表达式的定义方式。

使用
。toString

/\.scss$/.toString() === /\.scss$/.toString() // true
使用对象时更容易看到发生了什么:

鉴于

new RegExp("ab+c") === new RegExp("ab+c") // false

使用源属性如何

/\.scss$/.source === /\.scss$/.source && /\.scss$/.flags === /\.scss$/.flags
它比使用toString功能更快。


newregexp(“ab+c”)===newregexp(“ab+c”)
false
,因为两者都是对象,
==
无法比较对象。两个regex
aa
a{2}
是相同的,如何比较它们
toString()
将在此处失败。@Tushar我已经在问题中澄清了。@AvinashRaj我已经澄清了问题。
typeof/\.scss$/
“object”
,不能使用相等运算符比较两个对象。这适用于没有标志的regexp,但是
source
不包含标志信息:然后我添加
&&/\.scss$/.flags==/\.scss$/.flags
/\.scss$/.source === /\.scss$/.source && /\.scss$/.flags === /\.scss$/.flags