1

JavaScriptでいくつかのコードを置き換えようとしています。どういうわけか、これは機能しません。

var name = "check & ' \"";
alert(name);
alert(name.replace(/["]/g, "\""));
alert(name.replace(/[\]/g, "\"));       

私は何が間違っているのですか?

4

2 に答える 2

3

正規表現を使用せず、解析するだけです。

 var d = document.createElement('div');
 d.innerHTML = "check & ' \"";
 console.log(d.innerText);//all done

要素を作成し(メモリ内では表示されません)、innerTextプロパティを使用すると、同等のテキストが返されます(つまり、すべてのhtmlエンティティがそれぞれの文字に変換されます)。

これを読む

補足として:文字クラス/グループを作成しているため、機能しない理由/["]/gは次のとおりです。文字列全体ではなく、グループの任意の1文字に一致します。

d.innerHTML.replace(/["]/g,'@');//"check @amp@ ' \""
d.innerHTML.replace(/(")/g,'@');//"check & ' \""
于 2012-08-27T15:28:44.487 に答える
2

正規表現では、 []「次の文字のいずれか」を意味します。したがって、、、、、、、またはに一致/[\]/g&ます。#92;

なしで試してください[]

var name = "check & ' \"";
alert(name);
alert(name.replace(/"/g, "\""));
alert(name.replace(/\/g, "\""));
于 2012-08-27T15:28:52.413 に答える