它可以是任何字符串,只应匹配UPPERCASE部分并更改为小写,例如:"It's around August AND THEN I get an email"
变得"It's around August and then I get an email"
如您所见,单词It's
,August
和I
应该忽略
最佳答案
使用 /\b[A-Z]{2,}\b/g
匹配全部大写的单词,然后使用小写的回调将 .replace()
匹配。
var string = "It's around August AND THEN I get an email",
regex = /\b[A-Z]{2,}\b/g;
var modified = string.replace(regex, function(match) {
return match.toLowerCase();
});
console.log(modified);
// It's around August and then I get an email
另外,请随意使用更复杂的表达式。这将查找长度为1+的大写单词,但以“I”为异常(exception)(我也使查找句子的第一个单词的单词有所不同,但这更加复杂,并且在回调函数中需要更新逻辑,因为您仍然希望首字母大写):
\b(?!I\b)[A-Z]+\b