将字符串大写但不是前三个字母

时间:2016-10-19 10:17:22

标签: javascript jquery html css

我根据机场代码,姓名和位置提供字符串。

即。 :

var s = "BRU – Brussels National, Brussels, BELGIUM";

这里的重点是将字符串大写以获得"比利时"而不是"比利时"但保持第一个树字母upperCase。

如何使用jQuery或纯JavaScript执行此操作?

我需要的输出:

BRU - Brussels National, Brussels, Belgium

我的尝试(新字符串需要填充<span>内容):

$("#airport").html(s.toLowerCase()).css('text-transform', 'capitalize');

但是呈现<span>时的结果是:

Bru - Brussels National, Brussels, Belgium

如何保持前三个字母upperCase?

欢迎任何提示,我们将不胜感激。

谢谢。

5 个答案:

答案 0 :(得分:2)

您可以replace()使用regex进行此操作。请尝试:

var s = "BRU – Brussels National, Brussels, BELGIUM";
result = s.split("–");
split = result[1].toLowerCase().replace(/\b[a-z]/g, function(letter) {
    return letter.toUpperCase();
});
console.log(result[0] + "-" + split)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:1)

如果你知道第一个字符串总是包含三个字母,你可以这样做:

&#13;
&#13;
var s = "BRU – Brussels National, Brussels, BELGIUM";
$("#airport").html(s.slice(0, 3) + s.slice(3).toLowerCase()).css('text-transform', 'capitalize');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span id="airport"></span>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

我认为第一个答案是在正确的轨道上,但仍然制作了&#34; BRU&#34;小写字母我遵循了相同的概念,但希望得到你想要的东西:

var str = "BRU – Brussels National, Brussels, BELGIUM";
var newstr = str.replace(/[^–]*$/, function (letter) {
                        return letter.toLowerCase();
                    }).replace(/\b[a-z](?=[a-z]{2})/g, function (letter) {
                        return letter.toUpperCase();
                    });

首先,使用正则表达式

/[^–]*$/

我替换了&#34;之后的所有字符。 - &#34;用小写 然后还使用正则表达式

/\b[a-z](?=[a-z]{2})/g

我使用大写

替换每个第一个字符

希望这有帮助

答案 3 :(得分:0)

在javascript中,

    var s = "BRU – Brussels National, Brussels, BELGIUM";
         var strToCap = s.split('-')[1];
        var result= '';
        strToCap = strToCap .split(' ');
        for (var chr = 0; chr < strToCap .length; chr++) {
          result+= strToCap [chr].substring(0, 1).toUpperCase() + strToCap [chr].substring(1, strToCap [chr].length).toLowerCase() + ' '
         }
        result = s.split('-')[0] + "-" + result ;

答案 4 :(得分:0)

我使用以下代码完成了:

<强> HTML:

<span id="ContryCode">Bru – Brussels National, Brussels, BELGIUM</span>
<button id="btnConvert">
Convert To UperCase
</button>
<br/>
<span id="ConvertedCode"></span>

<强> JQuery的:

$("#btnConvert").click(function(){
var code=$("#ContryCode").html();
var codeCapital = code.substring(0, 3).toUpperCase();
$("#ConvertedCode").html(codeCapital+""+code.slice(3))
});

它将转换为大写,从任何字符串开始3个字母。

DEMO

希望它会对你有所帮助,谢谢