繁体   English   中英

JavaScript RegEx字符串结尾不起作用

[英]JavaScript RegEx end of string not working

我想重定向某些Facebook网址。 到目前为止,我有一个工作正常的chrome插件 ,但是某些网址与正确的方式不匹配。

var patternURL = new RegExp("http(s)?://www\.facebook\.com(/|/@?ref=(tn_tnmn|logo)+)?$", "m");

应该匹配:

https://www.facebook.com/?ref=tn_tnmn
https://www.facebook.com/?ref=logo
https://www.facebook.com/
https://www.facebook.com

但不是:

https://www.facebook.com/messages/

它在JavaScript中接缝,无法正确识别字符串( $ )的末尾。 到目前为止,这就是我的jsfiddle演示所显示的。 它应该为True,但即使带有“ m”也始终为false。

我做错了什么?

? 不能逃脱。 您需要使用两个反斜杠将其转义。

patternURL = new RegExp("http(s)?://www\\.facebook\\.com(/|/\\\\?ref=(tn_tnmn|logo)+)?$", "m");

http://jsfiddle.net/tRm7U/8/

这是因为当您使用regexp构造函数时,您使用了一个字符串,并且在构造regexp对象之前,“第一个反斜杠”用于字符串中的转义。 如果这样声明,则不需要它:

patternURL = /http(s)?://www\\.facebook\\.com(/|/\\?ref=(tn_tnmn|logo)+)?$/m

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM