1
var x = '#google';    // or '@google' or '%google'
var pattern = new RegExp('(^|\\s)' + x);
var result = txt.replace(pattern, '$1' + 'MyNewWord');

このコードは #google を置き換えるために正常に動作します

# の代わりに & または @ を使用すると、正常に動作します

# の代わりに $ を使用すると機能しないだけなので、次のコードは正しく機能しません

var x = '$google';   
var pattern = new RegExp('(^|\\s)' + x);
var result = txt.replace(pattern, '$1' + 'MyNewWord'); 

ps x はユーザー入力になるため、新しい RegEXP を使用しました。

4

1 に答える 1

6

$は RegExp の特殊文字なので、エスケープする必要があります。

var x = '\\$google';
var pattern = new RegExp('(^|\\s)' + x);
于 2012-10-13T04:07:13.223 に答える