3

私はJSでこのヘブライ文字を一致させて強調することができます:

var myText = $('#text').html();
var myHilite = myText.replace(/(\u05D0+)/g,"<span class='highlight'>$1</span>");
$('#text').html(myHilite);

フィドル

ただし、単語の境界でその文字を含む単語を強調表示することはできません。

/(\u05D0)\b/g

フィドル

JSはUnicodeを使用した正規表現が苦手です(サーバー側が優先されます)が、正規表現が苦手であることも知っています。これはJSの制限ですか、それとも構文のエラーですか?

4

2 に答える 2

2

ヘブライ語が読めません...この正規表現はあなたが望むことをしますか?

/(\S*[\u05D0]+\S*)/g

最初の正規表現は、/(\u05D0+)/g興味のあるキャラクターにのみ一致します。

2番目の正規表現は/(\u05D0)\b/g、関心のある文字が単語境界の前の最後の唯一の(または最後に繰り返される)文字である場合にのみ一致します...そのため、最初または途中でその文字と一致しません単語。

編集:

この答えを見てください

utf-8javascriptの単語境界正規表現

その答えからの情報を使用して、私はこの正規表現を思いつきます、これは正しいですか?

/([\u05D0])(?=\s|$)/g

于 2013-02-26T18:04:45.250 に答える
0

文中の単語のすべてのケースを使用する次の正規表現を使用するのはどうですか?

/^u05D0\s|\u05D0$|\u05D0\s|^\u05D0$/

実際には、OR演算子('|')で4つの正規表現を使用します。

  1. 文字列は正確な単語で始まり、その後にスペースが続きます
  2. または、文字列にスペース+単語+スペースがあります
  3. または、文字列がスペース+単語で終わる
  4. または、文字列は正確な単語のみです。
于 2016-03-13T11:25:35.293 に答える