RegEx匹配大写字母不是破折号后

时间:2015-10-19 13:45:54

标签: javascript regex

我想只在第二个字符串中匹配大写字母

dashed-String-With-Uppercase
camesCaseString

我已经尝试了这个(?<!-)([A-Z]),但负面的后视在javascript中不起作用。可以用另一种方式解决吗?

2 个答案:

答案 0 :(得分:3)

cupsenable

你可以使用它并抓住小组。

答案 1 :(得分:3)

您可以使用否定的字符类,并检查字符串的开头是否为

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

请参阅regex demo

然后,您可以使用$1反向引用来恢复大写字母前面的部分。

这是一个演示,演示如何在大写字母之前插入连字符,这些字母不是带有连字符的alreaydy:

&#13;
&#13;
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/>"));
&#13;
&#13;
&#13;