あるクラス名を別のクラス名に置き換える JavaScript 関数を作成しようとしています。次のような関数を使用すると
function foo(bar)
{
bar.className=bar.className.replace(/\bone/, "two");
}
のようなマークアップで
<div class="one" onclick="foo(this)"></div>
one
を正しく検索して置き換えtwo
ます。しかし、括弧を使用して の前にある可能性のある他の文字を含めるone
と\b
、文字列の先頭を認識できず、一致しません。例:
function foo(bar)
{
bar.className=bar.className.replace(/[\b\s]one/, "two");
}
動作しません。うまくいきません/[\b]one/
。
実際の動作を確認するには、 http://jsfiddle.net/E4ph5/を参照してください。私は何を間違っていますか?(フィドルでは、括弧を削除すると、スクリプトは正しく機能します。)