2016-10-19 4 views
0

У меня есть строки, основанные на кодах аэропортов, названии и местоположении.Заглавные буквы, но не первые три слова

т.е.:

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

Дело в том, чтобы капитализировать строку, чтобы получить «Бельгия» вместо «Бельгия», но сохранить первое дерево буквы прописными.

Как это сделать, используя jQuery или чистый JavaScript?

Выход мне нужно:

BRU - Brussels National, Brussels, Belgium 

Моя попытка (новая строка должна заполнить <span> содержание):

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

Но результат, когда <span> визуализируется является:

Bru - Brussels National, Brussels, Belgium 

Как сохранить первые три буквы upperCase?

Любые советы приветствуются и будут оценены.

спасибо.

+6

раздвоения первой строке от '-', а затем преобразовать вторую половину, а затем снова объединить – guradio

+0

, можете ли вы поделиться своим кодом HTML? –

ответ

1

Если вы знаете, что первая строка всегда содержит три буквы, вы могли бы сделать что-то вроде этого:

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

+0

'slice()' конечно! Спасибо ! – JazZ

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>

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 ; 
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

Надеется, что это будет поможет вам, спасибо

1

Я думаю, что первый ответ был на правильном пути, но все же сделал в нижний регистр «BRU» Я следовал той же концепции, но, надеюсь, получил то, что вы ищут:

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(); 
        }); 

Во-первых, с помощью регулярных выражений

/[^–]*$/ 

я заменить все символы после «-» с строчным затем также с помощью регулярных выражений

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

Я использую заменить каждый первый символ с прописными буквами

Надеется, что это помогает

Смежные вопросы