如何摆脱输出中的逗号(,)?有没有更好的方法从字符串或句子中搜索 url。
alert(" http://www.cnn.com df".match(/https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/));
警报的输出是:
http://www.cnn.com,,,,
如何摆脱输出中的逗号(,)?有没有更好的方法从字符串或句子中搜索 url。
alert(" http://www.cnn.com df".match(/https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/));
警报的输出是:
http://www.cnn.com,,,,
发生这种情况是因为alert
会将 的结果match
(一个数组)转换为字符串。要获取数组的相关部分,请使用以下命令:
alert(" http://www.cnn.com df".match(/https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/)[0]);
您 (*) 在您的正则表达式中使返回值成为具有多个匹配结果的数组。你可以使用?:
alert(" http://www.cnn.com df".match(/https?:\/\/(?:[-\w\.]+)+(?::\d+)?(?:\/(?:[\w/_\.]*(?:\?\S+)?)?)?/));
或获取返回数组的第一个值:
alert(" http://www.cnn.com df".match(/https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/)[0]);
在你的正则表达式末尾添加一个g
modifire。
alert(
"http://www.cnn.com df".match(/https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/g)
);