2

javascript の replace 関数を使用して文字列を置き換えようとしています。ただし、最初のインスタンスを置き換えるだけです。したがって、正規のグローバル表現を使用すると、

var result = 'moaning|yes you|hello test|mission control|com on'.replace(/|/g, ';');

私は得る:http://jsfiddle.net/m8UuD/196/

私は手に入れたい:

うめき声;はい、あなた;こんにちはテスト;ミッションコントロール;さあ

4

5 に答える 5

6

単純にパイプをエスケープします:

 'moaning|yes you|hello test|mission control|com on'.replace(/\|/g, ';');

ここでは、一般的にエスケープする必要がある正規表現の特殊文字のリストを見つけることができます

于 2013-04-05T19:34:46.473 に答える
3
var result = 'moaning|yes you|hello test|mission control|com on'.replace(/\|/g, ';');
于 2013-04-05T19:34:39.327 に答える
1

\多くの文字は、正規表現で特別な意味を持つために予約されているため、それらの文字を使用するには、特殊文字の直前にバックスラッシュを配置して「エスケープ」する必要があります。これらは:

(   start of a sub-expression
)   end of a sub-expression
{   start of repetition range
}   end of a repetition range
[   start of a character set
]   end of a character set
+   one or more repetitions
*   zero or more repetitions
^   start of string
$   end of string
|   "or" connection between alternatives
\   start of special code or escape
/   start or end of regexp pattern

たとえば、すべての開き角括弧に一致する正規表現は/\[/(バックスラッシュに注意してください) です。バックスラッシュを探す必要がある場合は、その前にバックスラッシュを付ける必要があります (2 倍になります)。

残念ながら、すべての特殊文字を「エスケープ」する定義済みの Javascript 関数はありません。

于 2013-04-05T19:47:13.863 に答える
1

「|」をエスケープする必要があります お気に入り:

var result = 'moaning|yes you|hello test|mission control|com on'.replace(/\|/g, ';');

http://jsfiddle.net/PM4PT/

于 2013-04-05T19:35:46.853 に答える