Как одной регулярной найти все матчи?
"{{chat.input + window.input}} {{chat.input + window.input}}"
как одной регуляркой найти все матчи типа chat.input и window.input \w+\.\w+ а никак |
попробуй модификатор global
g /\w+\.\w+/g "{{chat.input + window.input}} {{chat.input + window.input}}".match(/\w+\.\w+/g) |
mta88, я думал не стоит говорить что все же присутствие кода в {{тегах}} стоит учитывать, но ошибся.
|
Для нормального шаблонизатора одних регулярок не хватит. В твоём случае хз конечно, но у себя я строил дерево по коду и уже от него плясал.
ЗЫ: будь другом, сделай себе нормальную аватарку. |
Цитата:
короче придется делать "некрасиво" Цитата:
|
А что не так с //g то?
|
Цитата:
|
пасоны, вопрос задротам) что вернет этот код)? и сработает ли он)?
d:{d = void 1|0/1}.2 |
Цитата:
d: {} - это блок с меткой void 1 - даст undefined, следовательно результат 0/1 (0). Т.к. у нас не блочная видимость (хотя let уже в некоторых браузерах есть), то блок вернёт своё последнее значение, т.е. результат d = 0 => 0. Ну а .2 будут применены к полученному нулю: в итоге будет 0.2. |
Цитата:
alert( eval("{2}.4") ) ну а вообще ты крут, я наебался с приоритетом войда |
ну void же унарный оператор, а у них оч высокий приоритет.
|
Цитата:
Цитата:
d: - создание метки a:1; 2; // 2 {} - block scope, который в JS поддерживается только на уровне синтаксиса , без реализации ( { var a = 1; } a; // 1 void 1; undefined 0/1; - 0 undefined | 0; // выполняется целочисленное преобразование {0}.2; // 0.2 |
Цитата:
|
Цитата:
|
чо за метки?
|
|
Блин а по русски есть?
|
Цитата:
top: while (1) { var i = 10; while (i--) { if (i === 5) { break top; } } } Без метки break сбросил бы вложенный цикл, а так он сбросил верхний цикл. Кроме циклов ещё можно использовать с конструкцией switch. На практике метки не оч часто используются, но иногда удобно, если знаешь про них. |
|
На самом деле очень полезная штука при написании парсеров. Позволяет разрешить глубокие ветвления без создания дополнительных переменных.
label: for (var a = 0; a < 2; a++) { console.log(a); for (var b = 3; b < 5; b++) { for (var c = 6; c < 9; c++) { console.log(c); if (c == 7) continue label; } } } |
Цитата:
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 05:49. |