句:
var phraseToSearch = "Hello World";
请注意: sentence.ToLower().IndexOf(phraseToSearch.ToLower())
无效,因为它会包含上述所有句子,而结果应仅包含句子1和2
答案 0 :(得分:3)
您可以使用正则表达式将字符模式与字符串匹配。
正则表达式只是使用Hello World
字边框并使用\b
不区分大小写的修饰符来查找i
您要查找的确切字母。
Regex有一个方法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)
)
答案 1 :(得分:1)
您可能想要使用正则表达式。以下是您要匹配的内容
Text
(周围有空格)... Text
(一边是空格,另一边是文字的末尾)Text ...
(一边是空格,另一边是边开始)Text
(只是字符串,单独使用)一种方法,没有正则表达式,只需要放置4个条件(上面每个项目符号点一个)并使用&&
加入它们,但这会导致代码混乱。
另一个选择是将两个字符串拆分为空格,并检查一个数组是否是另一个数组的子数组。
但是,我的解决方案使用正则表达式 - 这是一种可以在字符串上测试的模式。
我们的模式
\b
将匹配空格,单词的分隔符和字符串的结尾。这些东西被称为单词边界。
以下是代码:
function doesContain(str, query){ // is query in str
return new RegExp("\b" + query + "\b", "i").test(str)
}
i
使匹配大小写不敏感。