首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Firefox中不能使用\x转义序列的JS正则表达式

在Firefox中不能使用\x转义序列的JS正则表达式
EN

Stack Overflow用户
提问于 2015-11-04 15:02:20
回答 1查看 1.1K关注 0票数 4

我有一个函数,它应该同时取代?paging={something}&paging={something}

下面的regex在任何地方都可以工作,但在Firefox中却不起作用,有什么问题吗?

代码语言:javascript
复制
function myPagination(){
    var url = window.location.href.replace(/\?paging=(.+?)\x/, "");
    console.log(url);
    url = url.replace(/\&paging=(.+?)\x/, "");
    console.log(url);
    return url + addPaging();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-04 15:15:38

这当然是人为错误,因为\x是一个未知的转义序列,没有后面的十六进制数字。

看看参考文献

没有特殊意义的字符也可以转义(例如'\a' == 'a'),但这当然不需要。但是,在Unicode转义序列之外使用\u 的,或者在 十六进制逃逸 之外使用 \x 的是 规格不允许的,并导致一些引擎抛出语法错误。

规格说明只提到:

HexEscapeSequence :: X HexDigit HexDigit

因此,如果计划与x匹配,只需使用x而不使用前面的\

在编写regex时的经验法则:永远不要使用模棱两可的模式!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33525105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档