0

http で始まる URL のプレーンな古い文字列を検索しようとしていますが、見つかったすべての正規表現は JavaScript では機能しないようであり、JavaScript でこの例を見つけることもできません。

これは私がここここから使おうとしているものです:

var test = /\b(?:(?:https?|ftp|file)://www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]/;

しかし、実行しようとすると、「予期しないトークン |」が表示されます。エラー。

4

2 に答える 2

1

わかりました、コメントでは不十分なようです。完全な答えを見つけるのは難しいです。適切な正規表現全体を書き直します:(テスト済み、うまく機能します)

var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i;

最後のiは「大文字と小文字を区別しない」を意味するため、この正規表現には必要です。

于 2010-09-07T02:12:59.620 に答える
0

を正規表現の区切り文字として使用しており、正規表現内 (www の前)/も使用/しているため、正規表現は実際には最初の / 前の www の後に終了します。次のように変更します。

var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]/;
                                     ^^^^ escape here
于 2010-09-07T01:56:13.727 に答える