Как одной регулярной найти все матчи?
"{{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, время: 21:59. |