split для поисковой строки
В поисковых строках обычно когда надо найти фразу, то её берут в кавычки. Например:
word "big phrase" Это значит, что надо найти слово word и фразу big phrase. Какое регулярное выражение в split надо использовать, чтобы преобразовывать такие поисковые запросы в массив строк? Элементы массива должны быть такими: 1) word 2) big phrase Как это сделать? |
var str = 'word "big phrase" word "big phrase"', words = []; str.replace(/"([^"]*)"|[\S]+/g, function(word, phrase) { words.push(phrase || word); }); alert(words.join('\n'));Например. |
Цитата:
var str = 'word "big phrase" word "big phrase"'; var words = str.split(/"([^"]*)"|[\S]+/g); alert(words.join('\n')); |
Так не надо его в split засовывать.
|
Цитата:
|
Ещё вопрос. Если перед " забыть поставить пробел, то будет найдено слово
word"big А если в конце фразы случайно поставить лишний пробел "big phrase ", то он так и останется. Как бы это в регулярном выражении поправить? |
var str = 'word" big phrase " word "big phrase"', words = []; str.replace(/"\s*([^"]*?)\s*"|[^\s"]+/g, function(word, phrase) { words.push(phrase || word); }); alert(words.join('\n')); |
Спасибо!
Где-бы мне подучиться регулярным выражениям? |
http://yandex.ru/yandsearch?text=%D0...fx3&clid=46510
Кроме этой книги не нужно ничего. |
Цитата:
|
Часовой пояс GMT +3, время: 20:37. |