Javascript RegExp и кавычки
1.
Александр (26.03.2012 / 20:30)
lines = '1 "
scascsac"
2 sascs'
result = /\x22.*\x22/gmi.exec(lines);//не работает
result2 = /".*\"/gmi.exec(lines);//не работает
как найти то что между " кавычек?
как только не побывал всегда null
2.
Вячеслав (02.04.2012 / 10:25)
lines = '1 "
scascsac"
2 sascs'
----
переносы строки разве допустимы?
3.
Александр (02.04.2012 / 11:10)
2, ошибся когда писал на форум
lines = '1 "\r\nscascsac"\r\n2 sascs'
4.
Вячеслав (02.04.2012 / 11:19)
lines = '1 "\r\nscascsac"\r\n2 sascs';
var arr = lines.split('"');
// arr[1] == 'scascsac'
как то так
5.
Александр (02.04.2012 / 11:22)
4, надо именно регуляркой.
6.
Вячеслав (02.04.2012 / 11:39)
* - Обозначает повторение 0 или более раз. Например, /bo*/ найдет 'boooo' в "A ghost booooed" и 'b' в "A bird warbled", но ничего не найдет в "A goat grunted".
Добавлено через 01:21 сек.
или я что-то не знаю про точку?
7.
Александр (02.04.2012 / 13:10)
6, точка это любой символ.
p.s Интересно почему
lines = '1\t"\r\nscascsac"\r\n2\tsascs'
result3 = /.*/gmi.exec(lines);//не работает
выводит '1 "' где остальное? как будто считает что \r\n конец строки. при том что флаг m есть.
8.
Антон (02.04.2012 / 13:14)
уф, как вспомню эту либу так и вздрогну, когда-то путался в ней разобраться
9.
Александр (02.04.2012 / 13:21)
о чудо,
result = /"(.|[\r\n\t])*"/gmi.exec(lines);//работает
получается в . нет спец символов, была такая мысль но так [.\r\n\t]* почему то не сработало.
10.
Вячеслав (02.04.2012 / 13:57)
и всетаки не ясно почему именно регуляркой? ведь сплитом дешевле, проще, наглядне, меньше кода в конце концов. И я снова типа что-то не знаю?
11.
Александр (02.04.2012 / 14:15)
10, будет регулярка по сложнее чем в #1, если кодом, то будет много кода.
URL:
https://visavi.net/topics/30829