Javascript 如何测试以确定浏览器是否支持JS regex lookahead/lookahead?
我有一个Javascript 如何测试以确定浏览器是否支持JS regex lookahead/lookahead?,javascript,regex,Javascript,Regex,我有一个string.replace()函数,它使用regex lookback myString.replace(/(?<!\\)'/gi, '"') myString.replace(/(?这将在chrome上返回true,在safari上返回false,没有任何语法错误: function supportsRegexLookAheadLookBehind() { try { return ( "hibyehihi" .re
string.replace()
函数,它使用regex lookback
myString.replace(/(?<!\\)'/gi, '"')
myString.replace(/(?这将在chrome上返回true
,在safari上返回false
,没有任何语法错误:
function supportsRegexLookAheadLookBehind() {
try {
return (
"hibyehihi"
.replace(new RegExp("(?<=hi)hi", "g"), "hello")
.replace(new RegExp("hi(?!bye)", "g"), "hey") === "hibyeheyhello"
);
} catch (error) {
return false;
}
}
函数支持regexlookaheadlookback(){
试一试{
返回(
“hibyehihi”
.replace(新的RegExp(“(?您应该编写一次正则表达式,以实现尽可能大的兼容性。了解浏览器是否支持lookbehinds有什么好处?您是否计划创建多个正则表达式?如果是这样,那么您的备用正则表达式在任何方面都是交叉兼容的,那么为什么要坚持使用lookbehind?这只会造成维护方面的麻烦。Fa这个问题更多的是为了满足我的好奇心,即某人如何管理新ES功能的集成,而不是为特定的生产应用程序找到解决方案。