JavaScript Regex匹配返回null或undefined
JavaScript Regex match returns null or undefined
var url_pattern = new RegExp("(?:http| https)://(www.|.*)someurlhere[.]com/'d'd'd'd/'d'd/'d'd/.*/", "i");
var url=window.location; //or could be document.URL both don't work
url.match(url_pattern);
为什么它返回null,或未定义,但当我扔正则表达式到一个检查它的工作完美,我只是想确保URL匹配
您的斜杠和https
之前的额外空格有问题,并且一些句号字符也没有正确转义。
当使用new RegExp("string")
格式时,必须对任何反斜杠进行双转义。使用/regexhere/
语法要容易得多,因为您不必在如此多的正则表达式规则中使用双转义反斜杠。
另外,字符串有一个称为.match()
的正则表达式方法。正则表达式本身有一个方法叫做。test()
或.exec()
。我的建议是:
var url_pattern = /(?:http|https):'/'/(www'.|.*)someurlhere'.com'/'d'd'd'd'/'d'd'/'d'd'/.*'//i;
window.location.href.match(url_pattern);
如果你想用另一种方式声明它,你应该转义每个反斜杠,像这样:
var url_pattern = new RegExp("(?:http|https)://(www''.|.*)someurlhere[.]com/''d''d''d''d/''d''d/''d''d/.*/", "i");
window.location.href.match(url_pattern);
虽然您应该考虑使用jfriend00建议的/regexhere/
语法,但您也可以使您的RegExp与RegExp一起工作。新的语法。问题是,你在一个字符串内,所以任何反斜杠都被认为是字符串本身的转义字符,而不是RegExp。要解决这个问题,您应该使用双反斜杠。您的RegExp应该更改为:
new RegExp("/(?:http|https)://(www.|.*)someurlhere[.]com/''d''d'd''d/''d''d/''d''d/.*/", "i");`
您可能还想对您的RegExp进行一些其他更改。例如,我建议使用''.
(再次注意在字符串中使用的双转义)来匹配句点,而不是使用[.]
。
相关文章:
- getElementById 在 Safari 中返回 null 或 undefined
- 为什么是 isFinite(undefined) != isFinite(null)
- 为什么"undefined为null或不是对象”;
- results[0].formatted_address return undefined or null
- javascript中undefined和null的区别是什么,它们的用例是什么
- Angularjs变量undefined、null和empty同时出现
- Undefined vs null in javascript
- 为什么javascript ' var undefined '是OK的,但' var null '抛出错误
- JavaScript Regex匹配返回null或undefined
- Are [object Null] &[object Undefined]有待实现
- 反应.createElement: type不应该是null、undefined、boolean或number.它应该是
- 迭代react元素中的undefined/null对象
- 警告:反应.createElement: type不应该是null、undefined、boolean或number
- 为什么 null==undefined 在 JavaScript 中是正确的
- JavaScript,一种检查嵌套对象属性是否为null/undefined的优雅方式
- In-browser-javascript:在什么情况下.Open返回null/undefined
- Meteor Iron路由器没有'如果数据返回null/undefined,则不调用onBeforeAction
- IE8 Javascript null != undefined
- 浏览器对Javascript中null/undefined简写检查的支持是什么?
- JavaScript在尝试获取数据属性时返回NULL/Undefined