現在、一致するテキストを太字のhtml行に変換する方法を探しています。私は元の文字列を維持したいが、元の文字列を比較したくないので、私に問題を与える特殊文字を除いて部分的に動作させる。特殊文字を無視して部分文字列を一致させて置換する
例:
Taco John's is my favorite place to eat.
と望むが一致する:
Taco John's <b>is my favorite</b> place to eat.
方法I:
is my 'favorite'
は、望ましい結果を得るために、元の文字列が与えられ
現在m一致する文字列に余分な引用符の周りetting、私はすべての句読点を失うことを除いて、これはほとんど機能し、彼らに
let regex = new RegExp('('+escapeRegexCharacters(matching_text.replace(/[^a-z 0-9]/gi,''))+')',"gi")
let html= full_text.replace(/[^a-z 0-9]/gi,'').replace(regex, "<b>$1</b>")}}></span>
を置き換えることである:
Taco Johns <b>is my favorite</b> place to eat
を正規表現を使用する方法、または別の方法があり、一致するプロセス中に大文字と小文字の両方を無視して一致するフレーズを囲むタグを追加するには?
UPDATE#1:
私が不明確であることだと思われます。最終結果のHTMLに残すには、元の文字列のpuncuationが必要です。そして、すべての特殊文字と大文字小文字を無視するために、一致するテキストロジックが必要です。したがって、is my favorite
is My favorite
とis my 'favorite'
はすべて一致する必要があります。パターンがある場合
あなたが提供してきた正規表現の全体のポイントではない何でも「AZ」を削除することです:あなたはjavascriptのは、結果のテキストを操作することができるように代用機能であることを使用することができます(スペース)または数字です。したがって、あなたの句読点を削除するだけです:https://regex101.com/r/M9HrNF/1 –
正規表現文字をエスケープすると、なぜ英数字+スペースを削除する必要がありますか? – Scimonster
@DoTheDew今のところ、一致を得るために句読点を削除していますが、最終結果に句読点を残したいと思いますが、特殊文字を削除するロジックが一致しています。 –