尝试将字符串IPProtocol
替换为I_p_protocol
str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`)
产生_i_p_protocol
你可以使用负向前看来确保不是string from start of string:(?!^)[A-Z]
const str = "IPProtocol";
const new_str = str.replace(/(?!^)[A-Z]/g, letter => `_${letter.toLowerCase()}`);
console.log(new_str);
您可以使用:
var str = 'IPProtocol';
var r = str.replace(/B[A-Z]/g, letter => `_${letter.toLowerCase()}`);
console.log(r)
//=> "I_p_protocol"
这里我们使用B[A-Z]
,它在单词字符之间进行大写字母匹配,但不是在单词的第一个位置。