JavaScript中字符串中小写和大写字母之间的空格

时间:2011-01-27 17:39:23

标签: javascript uppercase lowercase

我想在一个字符串中添加小写和大写之间的空格。例如:

FruityLoops
FirstRepeat

现在我想在小写和大写字母之间添加一个空格。我不知道如何从JavaScript开始。有什么东西用substr或搜索?有人可以帮助我吗?

4 个答案:

答案 0 :(得分:18)

var str = "FruityLoops";

str = str.replace(/([a-z])([A-Z])/g, '$1 $2');

示例: http://jsfiddle.net/3LYA8/

答案 1 :(得分:3)

像这样简单的东西:

"LoL".replace(/([a-z])([A-Z])/g, "$1 $2")

可能就足够了;)

答案 2 :(得分:2)

您可以通过手动搜索来完成,但使用正则表达式可能会更容易。假设:

  • 你知道它以资本开头
  • 你不想在那个首都前面留一个空间
  • 您需要在所有后续大写字母前面留出空格

然后:

function spacey(str) {  
    return str.substring(0, 1) +
           str.substring(1).replace(/[A-Z]/g, function(ch) {
        return " " + ch;
    });
}

alert(spacey("FruitLoops")); // "Fruit Loops"

Live example

更有效的版本受patrick's answer启发(但不同于):

function spacey(str) {  
    return str.substring(0, 1) +
           str.substring(1).replace(/([a-z])?([A-Z])/g, "$1 $2");
}

alert(spacey("FruityLoops"));  // "Fruity Loops"
alert(spacey("FruityXLoops")); // "Fruity X Loops"

Live example

答案 3 :(得分:0)

regexp选项看起来最好。正确使用regexp似乎很棘手。

这里还有一个问题,有一些更复杂的选项可供尝试:

Regular expression, split string by capital letter but ignore TLA