0

次のような文字列内のURLの配列を取得するにはどうすればよいですか:

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

すでにこれを試しました。これは、最初のコマだけを返します。予約済みでグローバルである必要があります。

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

1 に答える 1

3

代わりにString.split()を使用してください。

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

new RegExpJS には正規表現リテラルの非常に便利な表記法があるため、コンストラクトを使用する必要はありません。


完全を期すために、次のように実行できますRegExp.match

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

考え方は本質的に同じです: 各パターンマッチの反復 (/gグローバル修飾子が使用されているため) に対して、カンマとオプションの空白のシーケンスが見つかったとき、またはパターンの終わりに到達したときに (先読み部分式を使用して) 停止します。ストリング。

于 2013-06-03T07:47:02.147 に答える