我目前正在尋找一種將匹配文本轉換爲粗體html行的方法。除了特殊字符給我帶來問題之外,我已經部分工作了,因爲我希望保留原始字符串,但不能比較原始字符串。匹配並替換子字符串,而忽略特殊字符
例子:
鑑於原始字符串:
Taco John's is my favorite place to eat.
,並希望以匹配:
is my 'favorite'
爲了得到期望的結果:
Taco John's <b>is my favorite</b> place to eat.
的方式我現在克在匹配的字符串周圍多餘的報價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
有沒有辦法使用正則表達式,或者另一種方法,在匹配過程中忽略匹配短語的標籤而忽略大小寫字符和特殊字符?
更新#1:
看來,我是不清楚。我需要將原始字符串的puncuation留在最終結果的html中。我需要匹配的文本邏輯來忽略所有特殊字符和大小寫。所以is my favorite
is My favorite
和is my 'favorite'
應該都會觸發匹配。那裏是一個模式,但是,在這種情況下,你有一個直接匹配
您所提供的正則表達式的整點是消除任何不屬於「AZ」 (空格)或數字。因此只能刪除標點符號:https://regex101.com/r/M9HrNF/1 –
如果您成功轉義正則表達式字符,爲什麼您需要刪除非字母數字+空格? – Scimonster
@DoTheDew正確的,截至目前,我正在刪除標點符號以獲得匹配,但我希望將標點符號保留在最終結果中,但具有刪除特殊字符的匹配邏輯。 –