RegEx, чтобы соответствовать только символ новой строки с заданными условиями? - PullRequest
1 голос
/ 08 февраля 2011

У меня есть следующий RegEx:

^(?!#)(?<=.+)$\r

(с установленными глобальными и многострочными флагами)

То, что я хочу сделать, это сопоставить новую строку только , когда она заканчивается строкой, которая не начинается с '#'.

Ответы [ 2 ]

1 голос
/ 08 февраля 2011
function doSplit(input){
   var newl=String.fromCharCode(13)+String.fromCharCode(10); //make a newline
   var str = sInput.value.split(/\n/);                       //split on newlines
    for (var i=0,iMax=str.length; i<iMax; i++){              //loop through  
         //if it starts # add a newline
        if (str[i][0]=='#') {str[i]+=newl;}                 
    };

   return str.join('');   //join it back up
}

Пример здесь

Конечно, это фактически добавит несуществующий символ новой строки в конце (если последняя строка начинается с #), поэтому измените цикл, чтобы избежать этогонапример ...

for (var i=0,iMax=str.length-1; i<iMax; i++){              //loop through
0 голосов
/ 08 февраля 2011

Предварительное утверждение нулевой ширины заботится о «не начинается с», но я думаю, что вы смешиваете использование ^ и $ (в многострочном режиме, то есть)* Вы, вероятно, хотите что-то вроде

(^|\n)(?!#)(\n)
...