JavaScript正则表达式匹配返回null或未定义
为什么它返回null或undefined,但当我检查正则表达式时,它工作正常,我只想确保URL匹配您的斜杠和https前的额外空间有问题,并且一些句点字符也没有正确转义 使用JavaScript正则表达式匹配返回null或未定义,javascript,regex,firefox,Javascript,Regex,Firefox,为什么它返回null或undefined,但当我检查正则表达式时,它工作正常,我只想确保URL匹配您的斜杠和https前的额外空间有问题,并且一些句点字符也没有正确转义 使用newregexp(“string”)格式时,必须对任何反斜杠进行双转义。使用/regexhere/语法要容易得多,因为您不必对许多正则表达式规则中使用的反斜杠进行双重转义 此外,字符串还有一个名为.match()的正则表达式方法。正则表达式本身有一个名为。test()或.exec()的方法。我建议: var url_pat
newregexp(“string”)
格式时,必须对任何反斜杠进行双转义。使用/regexhere/
语法要容易得多,因为您不必对许多正则表达式规则中使用的反斜杠进行双重转义
此外,字符串还有一个名为.match()
的正则表达式方法。正则表达式本身有一个名为。test()
或.exec()
的方法。我建议:
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);
如果您想继续使用另一种声明方式,您可以像这样避开每个反斜杠:
var url_pattern = /(?:http|https):\/\/(www\.|.*)someurlhere\.com\/\d\d\d\d\/\d\d\/\d\d\/.*\//i;
window.location.href.match(url_pattern);
您的斜杠和https前面的额外空格有问题,并且一些句点字符也没有正确转义 使用
newregexp(“string”)
格式时,必须对任何反斜杠进行双转义。使用/regexhere/
语法要容易得多,因为您不必对许多正则表达式规则中使用的反斜杠进行双重转义
此外,字符串还有一个名为.match()
的正则表达式方法。正则表达式本身有一个名为。test()
或.exec()
的方法。我建议:
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);
如果您想继续使用另一种声明方式,您可以像这样避开每个反斜杠:
var url_pattern = /(?:http|https):\/\/(www\.|.*)someurlhere\.com\/\d\d\d\d\/\d\d\/\d\d\/.*\//i;
window.location.href.match(url_pattern);
您应该考虑使用JFRADE00建议的
newregexp(“/(?:http | https):/(www.|.*)someurlhere[.]com/\\d\\d\d\\d/\\d\\d/\\d/\\d/*/”,“i”)`
您可能还想对RegExp进行一些其他更改。例如,我建议使用
\.
(再次注意字符串中使用的双转义)来匹配句点,而不是使用[.]
> P> >您应该考虑使用JFRADE00建议的newregexp(“/(?:http | https):/(www.|.*)someurlhere[.]com/\\d\\d\d\\d/\\d\\d/\\d/\\d/*/”,“i”)`
您可能还想对RegExp进行一些其他更改。例如,我建议使用
\.
(再次注意字符串中使用的双转义)来匹配句点,而不是使用[.]
值得注意的是window.location实际上是一个对象。在位置上定义了许多可用和有用的属性。请参阅:我向对象添加了toString(),但它仍然为return@PeterWagenet-在需要字符串的上下文中使用window.location会自动对其调用toString(),从而提供完整的URL。如果您需要,最好使用.href
proeprty,但在大多数情况下,两者都可以使用。值得注意的是,window.location实际上是一个对象。在位置上定义了许多可用和有用的属性。请参阅:我向对象添加了toString(),但它仍然为return@PeterWagenet-在需要字符串的上下文中使用window.location会自动对其调用toString(),从而提供完整的URL。如果您需要,最好使用.href
proeprty,但在大多数情况下,这两种方法都适用。您未能正确地避开斜杠。这将生成一个语法错误。@PeterWagenet-where?在第一种模式中,只需要转义正斜杠。在第二种模式中,只需转义反斜杠。@jfriend00 yea在第一种模式中抛出非法字符,但第二种模式就像一个符咒thanks@italiano40-我修好了第一个。它在这里起作用:。@jfriend00好的,刚刚换了一个,效果很好,谢谢!你没能正确地逃脱你的刀砍。这将生成一个语法错误。@PeterWagenet-where?在第一种模式中,只需要转义正斜杠。在第二种模式中,只需转义反斜杠。@jfriend00 yea在第一种模式中抛出非法字符,但第二种模式就像一个符咒thanks@italiano40-我修好了第一个。它在这里起作用:。@jfriend00好的,刚刚换了一个,效果很好,谢谢!