$a = 'how are you';
if (strpos($a,'are') !== false) {
echo 'true';
}
В PHP мы можем использовать приведенный выше код, чтобы проверить, содержат ли строку определенные слова, но как я могу сделать одну и ту же функцию в JavaScript/jQuery?
$a = 'how are you';
if (strpos($a,'are') !== false) {
echo 'true';
}
В PHP мы можем использовать приведенный выше код, чтобы проверить, содержат ли строку определенные слова, но как я могу сделать одну и ту же функцию в JavaScript/jQuery?
Если вы ищете точные слова и не хотите, чтобы они соответствовали вещам типа "кошмар" (что, вероятно, вам нужно), вы можете использовать регулярное выражение:
/\bare\b/gi
\b = word boundary
g = global
i = case insensitive (if needed)
Если вы просто хотите найти символы "есть", используйте indexOf
.
Если вы хотите сопоставить произвольные слова, вам необходимо программно построить объект RegExp (регулярное выражение) на основе словарной строки и использовать test
.
Вы можете использовать indexOf для этого
var a = 'how are you';
if (a.indexOf('are') > -1) {
return true;
} else {
return false;
}
Изменить: Это старый ответ, который время от времени набирает голоса, поэтому я подумал, что должен уточнить, что в приведенном выше коде предложение if
вообще не требуется, поскольку само выражение является логическое. Вот лучшая версия, которую вы должны использовать,
var a = 'how are you';
return a.indexOf('are') > -1;
Обновление в ECMAScript2016:
var a = 'how are you';
return a.includes('are'); //true
indexOf
не следует использовать для этого.Функция CORRECT:
function wordInString(s, word){
return new RegExp( '\\b' + word + '\\b', 'i').test(s);
}
wordInString('did you, or did you not, get why?', 'you') // true
Это найдет слово, истинное слово, а не только если буквы этого слова находятся где-то в строке.
Вы ищете функцию indexOf:
if (str.indexOf("are") >= 0){//Do stuff}
Возможно, вы захотите использовать метод include в JS.
var sentence = "This is my line";
console.log(sentence.includes("my"));
//returns true if substring is present.
PS: включает в себя с учетом регистра.
Это будет
/\bword\b/.test("Thisword is not valid");
return false
, когда этот
/\bword\b/.test("This word is valid");
вернет true
.
var str1 = "STACKOVERFLOW";
var str2 = "OVER";
if(str1.indexOf(str2) != -1){
console.log(str2 + " found");
}
Простой способ сделать это - использовать метод Regex match(): -
Например,
var str ="Hi, Its stacks over flow and stackoverflow Rocks."
// It will check word from beginning to the end of the string
if(str.match(/(^|\W)stack($|\W)/)) {
alert('Word Match');
}else {
alert('Word not found');
}
Проверьте скрипку
ПРИМЕЧАНИЕ. Для добавления чувствительности к регистру обновите регулярное выражение с помощью /(^|\W)stack($|\W)/i
Спасибо
В javascript метод include() может использоваться для определения того, содержит ли строка конкретное слово (или символы в указанной позиции). Его регистр чувствителен.
var str = "Hello there.";
var check1 = str.includes("there");
var check2 = str.includes("her");
var check3 = str.includes("There");
var check4 = str.includes("o",4);
var check5 = str.includes("o",6);
check1 : true
check2 : true
check3 : false
check4 : true
check5 : false