我有这个函数,它应该替换URL中的?paging={something}
和&paging={something}
。
下面的正则表达式适用于任何地方,但不适用于Firefox,有什么问题吗?
function myPagination(){
var url = window.location.href.replace(/?paging=(.+?)x/, "");
console.log(url);
url = url.replace(/&paging=(.+?)x/, "");
console.log(url);
return url + addPaging();
}
这肯定是人为错误,因为x
是一个未知的转义序列,后面没有十六进制数字。
看看Mathias Bynens的JavaScript字符转义序列参考:
没有特殊含义的字符也可以转义(例如
'a' == 'a'
),但这当然不是必需的。但是,在Unicode转义序列之外使用u
或在十六进制转义之外使用x
是规范所禁止的,并且会导致某些引擎抛出语法错误。
规范中只提到:
HexEscapeSequence::
x六进制数字六进制数字
因此,如果您计划匹配x
,只需使用x
,而不使用前面的
编写正则表达式时的经验法则:永远不要使用模棱两可的模式!