我有这个功能应该从网址中替换?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();
}
答案 0 :(得分:4)
这肯定是一个人为错误,因为\x
是一个未知的转义序列,后面没有十六进制数字。
查看Mathias Bynens' JavaScript character escape sequences reference:
也可以转义没有特殊含义的字符(例如
'\a' == 'a'
),但这当然不需要。但是,在Unicode转义序列之外使用\u
,或hexadecimal escape之外的\x
是disallowed by the specification ,而会导致某些引擎抛出语法错误。
specification仅提到:
HexEscapeSequence ::
x HexDigit HexDigit
因此,如果您计划匹配x
,只需使用x
,而不要使用\
。
撰写正则表达式时的经验法则:绝不使用含糊不清的模式!