Я выделяю все слова между трубами |
, используя /\|(.+?)\|/g
, например |mathSign|
; mathSign
будет освещен.Регулярное выражение: совпадение, если не следует повторяющийся символ
Тем не менее, есть некоторые случаи, которые мы пишем двойные трубы ||
для другого значения следующим образом:
function |mathSign| (x) {
return |((x === 0 || isNaN(x)) ? x : (x > 0 ? 1 : -1))|;
}
картина соответствует |((x === 0 |
и | isNaN(x)) ? x : (x > 0 ? 1 : -1))|
что неправильно. Правильный должен игнорировать ||
посередине.
Я попытался использовать концепцию lookahead
; /\|(.+?)\|(?!\|)/g
, чтобы проигнорировать, если труба, за которой следует другая труба, однако, пока не повезло. Любая помощь будет оценена по достоинству.
См. Мой Demo в действии.
Благодаря @Avanash, работал как шарм! – lvarayut