Подтвердить что ты не робот

JavaScript/jQuery - как проверить, содержат ли строки определенные слова

$a = 'how are you';
if (strpos($a,'are') !== false) {
    echo 'true';
}

В PHP мы можем использовать приведенный выше код, чтобы проверить, содержат ли строку определенные слова, но как я могу сделать одну и ту же функцию в JavaScript/jQuery?

4b9b3361

Ответ 1

Если вы ищете точные слова и не хотите, чтобы они соответствовали вещам типа "кошмар" (что, вероятно, вам нужно), вы можете использовать регулярное выражение:

/\bare\b/gi

\b = word boundary
g = global
i = case insensitive (if needed)

Если вы просто хотите найти символы "есть", используйте indexOf.

Если вы хотите сопоставить произвольные слова, вам необходимо программно построить объект RegExp (регулярное выражение) на основе словарной строки и использовать test.

Ответ 2

Вы можете использовать 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

Ответ 3

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

Это найдет слово, истинное слово, а не только если буквы этого слова находятся где-то в строке.

Ответ 4

Вы ищете функцию indexOf:

if (str.indexOf("are") >= 0){//Do stuff}

Ответ 5

Возможно, вы захотите использовать метод include в JS.

var sentence = "This is my line";
console.log(sentence.includes("my"));
//returns true if substring is present.

PS: включает в себя с учетом регистра.

Ответ 6

Это будет

/\bword\b/.test("Thisword is not valid");

return false, когда этот

/\bword\b/.test("This word is valid");

вернет true.

Ответ 7

var str1 = "STACKOVERFLOW";
var str2 = "OVER";
if(str1.indexOf(str2) != -1){
    console.log(str2 + " found");
}

Ответ 8

Простой способ сделать это - использовать метод 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

Спасибо

Ответ 9

В 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