HTMLコードでラップするユニコード文字がある場合でも、完全な単語またはフレーズに一致する正規表現パターンを作成したいと考えています。だから私はこのパターンを使用します:
var pattern=new RegExp('(^|\\s)'+phrase+'(?=\\s|$)', "gi");
1 つの問題を除いて、複数の単語のフレーズでも完全に機能します。フレーズが文字列の先頭でない場合、単語の前のスペースと一致します。そのため、ラップした後、そのスペースが失われます。スペースではなくフレーズ変数のみをラップしたい。
例えば:
var string="This is a nice sentence.";
var phrase="is a nice";
/*OUTPUT: Thisis a nicesentence*//*HTML OUTPUT: This<span>is a nice</span>sentence*/
/*What I want: This <span>is a nice</span> sentence*/
もちろん、このパターンは機能します。
var pattern=new RegExp(phrase, "gi");
しかし、別の部分文字列である文字列を探しているわけではありません。
より良い正規表現パターンで問題を解決することはできますか?