如何使用正则表达式javascript将大写更改为小写

时间:2015-08-27 18:28:11

标签: javascript regex

它可以是任何字符串,它应该只匹配大写部分并更改为小写,例如:

"It's around August AND THEN I get an email"

成为

"It's around August and then I get an email"

您可以看到It'sAugustI这个词应该被忽略

2 个答案:

答案 0 :(得分:15)

使用/\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"作为例外(我也做了一个看一个句子的第一个单词不同的,但是这个更复杂,并且需要在回调函数中更新逻辑,因为你仍然希望首字母大写):

\b(?!I\b)[A-Z]+\b

答案 1 :(得分:5)

没有正则表达式的解决方案:



function isUpperCase(str) {
        return str === str.toUpperCase();
    }

var str = "It's around August AND THEN I get an email";
var matched = str.split(' ').map(function(val){
  if (isUpperCase(val) && val.length>1) {
    return val.toLowerCase();
    }
  return val;        
});

console.log(matched.join(' '));