Я вообще не понимаю регулярные выражения, если можно без них, то оно и к лучшему:
Задача такая, сам решить не пробовал:
Есть строка, например "Выпить чаю и съесть несколько вкусных круассанов"
есть массив из отдельных слов или их частей ['скольк', 'руасс', 'есть'].
Надо вернуть true, если каждое из слов есть в искомой строке, причем, как видите, части слов тоже. Порядок слов в массиве роли не играет. В каждом элементе массива только по одному слову, пробелов там нет.
В нашем случае вернет true.
Как реализовать это? В плагине datatables.net такое реализовано
1. ПТО - 20 Августа, 2015 - 11:51:22 - перейти к сообщению
2. Мелкий - 20 Августа, 2015 - 12:21:33 - перейти к сообщению
Итерируете свой массив. Если по проверяемой строке indexOf вернул -1, то сразу возвращаете false. Если успешно вышли из цикла - возвращаете безусловное true.
3. IllusionMH - 20 Августа, 2015 - 12:27:29 - перейти к сообщению
ПТО, Array.prototype.every + String.prototype.indexOf (как сказали выше)
4. andrewkard - 20 Августа, 2015 - 12:33:03 - перейти к сообщению
...
5. ПТО - 20 Августа, 2015 - 13:08:20 - перейти к сообщению
Мелкий пишет:
Итерируете свой массив. Если по проверяемой строке indexOf вернул -1, то сразу возвращаете false. Если успешно вышли из цикла - возвращаете безусловное true.
итерируйте?
Можно чуть-чуть написать?
6. Мелкий - 20 Августа, 2015 - 13:28:03 - перейти к сообщению
Т.е. пройдите по всем элементам массива любым понравившимся способом.
7. andrewkard - 20 Августа, 2015 - 13:47:40 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
скопировать код в буфер обмена
- <script>
- var str = "Выпить чаю и съесть несколько вкусных круассанов";
- var arr_data = ['скольк', 'руасс', 'есть', '123'];
- var arr_check = [];
- for (var i=0;i<arr_data.length;i++){
- if (str.indexOf(arr_data[i]) != -1){
- arr_check.push(arr_data[i]);
- }
- }
- if (arr_data.length == arr_check.length ){
- alert('true');
- } else {
- alert('false');
- }
- </script>