2015-10-19 2 views
1

Я хочу, чтобы соответствовать прописные буквы только во второй строкеRegEx матч заглавная буква не после тире

dashed-String-With-Uppercase 
camesCaseString 

Я пробовал этот (?<!-)([A-Z]), но отрицательный результат просмотра назад не работает в JavaScript. Можно ли это решить другим способом?

ответ

3

Вы можете использовать отрицание класса символов с чередованием проверяя начало строки:

(^|[^-])([A-Z]) 

См regex demo

Затем, вы можете восстановить часть перед прописной буквой с $1 бэк- Справка.

Вот демо, показывающий, как вставлять дефис перед тем заглавными буквами, не alreaydy предшествовавших с дефисом:

var re = /(^|[^-])([A-Z])/g; 
 
var str = 'dashed-String-With-Uppercase\ncamesCaseString'; 
 
var result = str.replace(re, "$1-$2"); 
 
document.write(result.replace(/\n/g, "<br/>"));

3
[^-]([A-Z]) 

Вы можете использовать это и захватить группу.

Смежные вопросы