我正在創建一個自動完成,我遇到了一個小問題,結果突出顯示。您看到我的搜索算法非常慷慨,並且忽略結果中的撇號,因此像joes
這樣的查詢將匹配Joe's
。搜索算法被照顧,現在成爲突出部分。我想讓匹配的圖案變粗。JS正則表達式名稱高亮
比方說,我有一個原始的未格式化的結果:Joe’s
(注意到rsquo的\ u2019),我想強調這樣的:Joe’s
,對下列查詢joes
,joe's
和joe’s
(rsquo的\ u2019 )
我在查詢中包含右側單引號,因爲您不知道是否有人從Word文檔或其他東西中複製查詢。
我可以很容易地做到這一點被忽略的事實引號有兩種搜索/結果字符串但會陷入困境,當你不小心輸入像joes'
甚至更糟jo'es
搜索整點。所以我不知何故需要保留報價位置。還請注意,撇號也可以在無格式結果字符串中的任何位置,如Suq'Ata
。
以下是方案的列表:
- 字符串:
Liliana's
- 查詢:
lilianas
,liliana's
- 結果:
Liliana's
- 字符串:
Suq'Ata
- 查詢:
suqat
,suq'at
- 結果:
Suq'Ata
- 字符串:
Telim'Tor's
- 查詢:
telimt
,telim't
- Resul T:
Telim'Tor's
應當注意的是,在查詢中的引號的位置,而當你在放錯位置查詢報價重要的是,它不應該匹配的。所以它要麼有正確的報價位置,要麼沒有報價來突出顯示原始字符串。
我其實並不介意如果提出的解決方案是分解每個字母並循環通過它(考慮過它),因爲我只會在給定的時間將這個字符串做成5個字符串。我期待着您的建議!從提問者
第一個結果應該是** Liliana's **,因爲原始字符串是'Liliana's'? –
謝謝你指出,我會編輯它。 – voldomazta