我正在使用正则表达式来捕获 URL 字符串,但它不起作用。
这是我的代码,它来自外部 JavaScript 文档,链接到 HTML 文件:
var url = 'The URL was www.google.com';
var urlRegEx = /((\bhttps?:\/\/)|(\bwww\.))\S*/;
var urlRegMatch = url.match(urlRegEx);
document.write(urlRegMatch);
我得到的输出是这样的:“www.google.com,www.,,www.”
我做错了什么?
谢谢! :)
最佳答案
您的正则表达式工作正常,发生的情况是,根据匹配函数,您将为正则表达式中的每个组(由这些括号定义)获得一个额外结果。要访问整个比赛,您可以访问比赛返回的第一项,如下所示:
var url = 'The URL was www.google.com';
var urlRegEx = /((\bhttps?:\/\/)|(\bwww\.))\S*/;
var urlRegMatch = url.match(urlRegEx)[0]; //this line changed, im using [0] to access the whole match only
document.write(urlRegMatch);
关于javascript - Match() 方法的正则表达式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52417327/