2014-09-17 3 views
1

Вот мой код:Сопоставление нескольких ключевых слов в тексте (Javascript)

// Matching multiple keywords in a text 
// Case 1 
var text = "Hello, My name is @Steve, I love @Bill, happy new year!"; 
var keywords = ["steve"]; 
var matching = text.toLowerCase().search([keywords]); 
console.log(matching); 
// return 19 

// Case 2 
var text = "Hello, My name is @Steve, I love @Bill, happy new year!"; 
var keywords = ["bill"]; 
var matching = text.toLowerCase().search([keywords]); 
console.log(matching); 
// return 34 

// Case 3 
var text = "Hello, My name is @Steve, I love @Bill, happy new year!"; 
var keywords = ["steve, bill"]; 
var matching = text.toLowerCase().search([keywords]); 
console.log(matching); 
// return -1 

// Case 4 
var text = "Hello, My name is @Steve, I love @Bill, happy new year!"; 
var keywords = ["steve", "bill"]; 
var matching = text.toLowerCase().search([keywords]); 
console.log(matching); 
// return -1 

Если что-то я пропустил, чтобы сделать Case 3 и Case 4 возвращение положительным?

Я просто хочу, если текст либо соответствие с одним из ключевых слов, он будет вернуть положительный.

Но не работает в данный момент. Помогает. Благодарю.

Спасибо.

+0

Где функция 'search()', которая принимает массив строк как фактически определенный параметр? –

+0

Вы можете попробовать на http://repl.it Поиск() определяется по умолчанию в js, справа? –

ответ

0

Чтение the docs показывает, что предоставленный аргумент поисковому методу преобразуется в регулярное выражение, в результате получается /steve,bill/, который выполняет поиск точно для "steve,bill".

Вам необходимо предоставить правильное регулярное выражение.

+0

Спасибо за информацию. Временно у меня нет идеи, лучшего выражения. Можете ли вы направить меня больше? Благодаря! –

+0

Ну, вы могли бы вместо этого подумать о том, как определить btw. очень простое регулярное выражение, но здесь вы идете '/ steve | bill/i'. –

+0

Мммм ... извините ... Я думаю, что я нооб. Я все еще не понимаю. Вы имеете в виду, что я могу сделать так: var matching = text.toLowerCase(). Search (/ [keywords]/i); ??? Еще раз спасибо!! –

Смежные вопросы