正则表达式exec用逗号“,*”分隔的网址列表

时间:2013-06-03 07:45:18

标签: javascript regex

如何在字符串中获取一系列网址,如:

"http://www.google.de, http://www.lycos.de, http://www.facebook.de"

已经尝试过这个。这只返回第一个昏迷。它应该保留并且是全球性的。

new RegExp(", *", "g").exec(attrValue);

1 个答案:

答案 0 :(得分:3)

改为使用String.split()

var origin = "http://www.google.de, http://www.lycos.de, http://www.facebook.de";
var urls   = origin.split(/,\s*/);

你不必使用new RegExp构造,因为JS对正则表达式文字有很多convenient notation


为了完整起见,以下是RegExp.match的完成方式:

var origin = "http://www.google.de, http://www.lycos.de, http://www.facebook.de";
var urls   = origin.match(/.+?(?=,\s*|$)/g);

这个想法基本相同:对于每个模式匹配迭代(使用/g全局修饰符),当找到逗号和可选空格的序列时,我们停止(使用前瞻式子表达式),或者当我们到达字符串的末尾时。