我想大写除匹配模式外的所有字符。匹配除匹配(多字)模式以外的所有字符
模式:
abc*
输入:
xyz a56abccc 789def
结果:
XYZ A56abccc 789DEF
是否有可能在JavaScript?
我想大写除匹配模式外的所有字符。匹配除匹配(多字)模式以外的所有字符
模式:
abc*
输入:
xyz a56abccc 789def
结果:
XYZ A56abccc 789DEF
是否有可能在JavaScript?
你可以使用一个超前基于函数:
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]
[测试](https://regex101.com/r/qB5fK8/)似乎没有通过。 –
我的正则表达式是'(?![abc])[az]'.OP没有响应我问的问题 – anubhava
对不起,[测试](https://regex101.com/r/qB5fK8/1)应该是一个较旧版本 –
这是上面的一个修改版本通过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"
为什么结果包括,当它不应该被转换为大写'A'? – anubhava
他意味着只在第二个单词的末尾指向令牌。 :( –