匹配除匹配(多字)模式之外的所有字符

时间:2015-10-05 14:52:54

标签: javascript regex regex-negation

我希望将匹配模式以外的所有字符大写。

模式:

abc*

输入:

xyz a56abccc 789def

结果:

XYZ A56abccc 789DEF

可以在JavaScript中使用吗?

2 个答案:

答案 0 :(得分:1)

您可以使用基于前瞻功能:

var s = 'xyz a56abccc 789def';

var r = s.replace(/(?![abc])[a-z]/g, function($1) { return $1.toUpperCase(); });
//=> "XYZ a56abccc 789DEF"

(?![abc])[a-z]将匹配任何小写字母,除非它是列表中的其中一个,即[abc]

答案 1 :(得分:0)

这是上面的修改版本,它传递了test

(?![abc]+\b)[a-z]

代表

var s = 'xyz a56abccc 789def';

var r = s.replace(/(?![abc]+\b)[a-z]/g, function($1) { return $1.toUpperCase(); });
//=> "XYZ A56abccc 789DEF"