我想大寫除匹配模式外的所有字符。匹配除匹配(多字)模式以外的所有字符
模式:
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
他意味着只在第二個單詞的末尾指向令牌。 :( –