Insert space before capital letters

前端 未结 8 1185
误落风尘
误落风尘 2020-12-02 07:01

I have a string \"MySites\". I want to place a space between My and Sites.

How can I do this in jQuery or JavaScript?

8条回答
  •  执笔经年
    2020-12-02 07:31

    This should insert a space between each capital letter that was not preceded by a capital letter.

    var myString = "MySites"
    var newString = "";
    var wasUpper = false;
    for (var i = 0; i < myString.length; i++)
    {
        if (!wasUpper && myString[i] == myString.toUpperCase()[i])
        {
            newString = newString + " ";
            wasUpper = true;
        }
        else
        {
            wasUpper = false;
        }
        newString = newString + myString[i];
    }
    

    newString will have the value you want. Also, if you want to shorten your code using regex, you can use the following code from Javascript camelCase to Regular Form

    "thisStringIsGood"
        // insert a space before all caps
        .replace(/([A-Z])/g, ' $1')
        // uppercase the first character
        .replace(/^./, function(str){ return str.toUpperCase(); })
    

提交回复
热议问题