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, время: 08:16. |