1

内部にいくつかの特殊文字を含む JavaScript の文字列があります。

var string = xxxx † yyyy § zzzz 

そして、これらの特殊文字を削除して、次のもののみを取得したいと思います:

文字列 = xxxx yyyy zzzz

私はこの正規表現を試しました:

&#?[a-z0-9]+;

そのように:

string = string.replace(/&#?[a-z0-9]+;/g, "");

ただし、特殊文字はこの正規表現と一致しません。

どうすればそれができるか考えてください。

正規表現はうまく機能します。例を参照してください: http://regexr.com?31rrj

4

4 に答える 4

4

それは私にとってはうまくいっています。
実際の例: http://jsfiddle.net/JwrZ6/

おそらくあなたの構文で、文字列は " で囲んで定義する必要があります。

var string = "xxxx † yyyy § zzzz";

いいえ

var string = xxxx † yyyy § zzzz;
于 2012-08-16T14:32:11.833 に答える
1

次のような正規表現を使用してHTMLエンティティを削除できます。

function removeEntities(str) {
  return (''+str).replace(/&\w+;\s*/g, '');
}

removeEntities("xxxx † yyyy § zzzz"); // => "xxxx yyyy zzzz"
于 2012-08-16T14:36:39.620 に答える
1

JavaScript の string.replace() メソッドの使用はどうですか? 数行のコードが必要になるかもしれませんが、RegEx よりもおそらく高速で、間違いなく読みやすいでしょう。

これは、replace http://www.bennadel.com/blog/142-Ask-Ben-Javascript-String-Replace-Method.htmに関する全体的な記事です。Ben は string.replace でも RegEx を使用しています。これには、必要なものがすべて含まれているはずです。

于 2012-08-16T14:32:50.807 に答える
1

RegExp次のように使用する必要があります。

string.replace( new RegExp( regexp_expression, 'g' ), '' );

クラスの構文RegExpは次のとおりです。

var regexp = new RegExp(pattern [, flags]);

このクラスのドキュメントを読むことができます。

于 2012-08-16T14:29:55.720 に答える