2

如何摆脱输出中的逗号(,)?有没有更好的方法从字符串或句子中搜索 url。

alert("   http://www.cnn.com  df".match(/https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/));

警报的输出是:

http://www.cnn.com,,,,
4

3 回答 3

1

发生这种情况是因为alert会将 的结果match(一个数组)转换为字符串。要获取数组的相关部分,请使用以下命令:

alert("   http://www.cnn.com  df".match(/https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/)[0]);
于 2012-08-26T02:21:50.910 回答
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]);
于 2012-08-26T02:23:51.673 回答
0

在你的正则表达式末尾添加一个gmodifire。

 alert(
"http://www.cnn.com df".match(/https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/g)
);
于 2012-08-26T02:39:30.167 回答