- 嘿結賬的Hello World < - 應包括
- 你好世界是太好了! < - 應包括
- Hhello世界不應該工作< - 不應該包括
- 這也Hhhello世界< - 不應該包括
var phraseToSearch = "Hello World";
待辦事項:sentence.ToLower().IndexOf(phraseToSearch.ToLower())
會不起作用,因爲它將包括所有上述句子,而結果應該只包括句子1和2
var phraseToSearch = "Hello World";
待辦事項:sentence.ToLower().IndexOf(phraseToSearch.ToLower())
會不起作用,因爲它將包括所有上述句子,而結果應該只包括句子1和2
您可以使用正則表達式將字符模式與字符串進行匹配。
正則表達式只是簡單地尋找Hello World
與\b
一起使用的單詞邊界和使用不區分大小寫的修飾符的\b
。
正則表達式有一個方法test
,它將運行給定字符串上的正則表達式。如果正則表達式匹配,它將返回true。
const phraseToSearch = /\bhello world\b/i
const str1 = 'Hey checkout Hello World'
const str2 = 'hello world is nice!'
const str3 = 'Hhello World should not work'
const str4 = 'This too Hhhello World'
console.log(
phraseToSearch.test(str1),
phraseToSearch.test(str2),
phraseToSearch.test(str3),
phraseToSearch.test(str4)
)
你可能想使用正則表達式。這裏是你想匹配
Text
(與周圍空間)... Text
(文字上的另一側有空隙,並結束)Text ...
(與空間一側的事情,並在另一側的開始)Text
(只是字符串,對自己)一種方式做到這一點,沒有一個正則表達式,是絕對把4個條件(上面的每個項目符合一個)和&&
聯繫起來,但這會導致代碼混亂。
另一種選擇是將兩個字符串拆分爲空格,並檢查一個數組是否是另一個數組的子數組。
但是,我的解決方案使用正則表達式 - 這是一種可以在字符串上測試的模式。
我們的模式應該
\b
的空間/結束,根據this ,將匹配空格,單詞分隔符和字符串末尾。這些東西被稱爲詞邊界。
下面是代碼:
function doesContain(str, query){ // is query in str
return new RegExp("\b" + query + "\b", "i").test(str)
}
i
的使匹配大小寫不敏感的。
'/ \ bhello \ sworld \ b/gi' – adeneo