2

xxx="yyy"正規表現の置換メソッドを使用して、指定された文字列のテキストのパターンを次のように置き換えようとしました。

私のパターンは次のとおりです。/^[a-zA-Z0-9.;:|_-]+="[a-zA-Z0-9.;:_-]+\"/

コード:

var userinput = '<div id="c16430" style="color:red;" class="css-btn">';         
var pattern = /^[a-zA-Z0-9.;:|_-]+="[a-zA-Z0-9.;:_-]+\"/;
userinput = userinput.replace( pattern, "Replaced..." );

しかし、それは機能していません... jsfiddle。なにが問題ですか?

前もって感謝します..

4

3 に答える 3

5

いくつかの問題があります。

  1. ^最初に使用して、入力の開始を一致させようとしています
  2. 最後にグローバルフラグを使用してい/gないため、最初の一致のみを置き換えます。

これはうまくいきます:

var pattern = /[a-zA-Z0-9.;:|_-]+="[a-zA-Z0-9.;:_-]+\"/g;

ここにあなたの更新された例があります

于 2013-10-10T13:33:11.483 に答える
2

あなたのために簡素化されました。述べたように、これは誤った入力と一致する可能性があり、入力がどれほど厳密であるかがわかりません。

var pattern = /[^ =]+="[^"]+"/g;

または単語以外の文字を無視する

var pattern = /[^\W]+="[^"]+"/g;

または元のアイデアに固執する場合、i修飾子は大文字と小文字を区別しないマッチングを実行するために使用されます。

var pattern = /[a-z0-9_.|:;-]+="[^"]+"/ig;
于 2013-10-10T13:36:12.137 に答える
0

それは完璧です

/\s[^=]+\=\".*?\"/g
于 2016-05-16T13:42:14.490 に答える