2015-11-27 134 views
1

12:00:00:12刪除後面的字符

如何從背面刪除6個字符?輸出將是12:00,我不能使用子字符串從前面獲得6個字符,因爲它可以是9:00,所以它只是4個字符而不是5個。

+1

你確定你將永遠刪除6首或5個字符? – CapitanFindus

+0

@CapitanFindus那麼最好的解決方案是什麼?檢測':'? –

+0

你可以檢查長度是5還是6,比'substring'。但只有價值是5或6個字符長度。或者你可以得到第二個索引':'然後子字符串 – CapitanFindus

回答

1

我認爲如果if您使用split()函數,並將第一個和第二個項目放入分隔數組中。

var my_string ="12:00:00:12"; 
 
var array_splited = my_string.split(':'); 
 

 
console.log(array_splited[0] + ':' + array_splited[1]); //12:00

如果你想在單行線,e.g:

my_string.split(':')[0] + ':' + my_string.split(':')[1]; 

希望這有助於。

+0

它可以在一行嗎?我正在循環內進行格式化。 –

+0

是的@JenniferAniston檢查我的更新。 –

+0

啊真的用split()工作,非常感謝Zakaria! –

0
var str = "12:00:00:12"; 
var newStrArr = str.split(":"); 
newStrArr.pop(); 
newStrArr.pop(); 
newStrArr.join(":"); 
3

我覺得@ZakariaAcharki是一個更好的解決方案,但如果你想使它通過串試試這個:

str = '12:00:00:12'; 
str.substring(0,str.length-6); 
+0

這就是你要這樣做的方式,搞亂數組或者正則表達式有點瘋狂。 –

1

可以確定的長度,比回去例如6個字符

str = '12:00:00:12' 
str = str.substring(0,str.length - 6); 

但你可以更好地匹配

str = '12:00:00:12'.match(/^[0-9]+:[0-9]+/)[0] 
0

簡單,最好的解決辦法:

使用slice()功能。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

$(function(){ 
    var str = '12:00:00:12'; 
    alert(str.slice(0,-6)); 
}); 

輸出:12:00

JSFiddle Demo

0

如果時間始終處於該形式(0-12):(00-59);(00 -59),那麼你可以使用正則表達式和函數.match()來獲得你想要的格式的時間:

current_time = '12:00:00' 

time_formatted = current_time.match(/\d+:\d+/) 
1

.match()方法的正則表達式會做:

var str1 = '12:00:00:12'; 
 
var str2 = '9:40:00:12'; 
 

 
var regex = /(\d+)+:+(\d\d)/g; 
 

 
var newStr1 = str1.match(regex)[0]; 
 
var newStr2 = str2.match(regex)[0]; 
 

 
document.querySelector('#one').textContent = JSON.stringify(newStr1); 
 
document.querySelector('#two').textContent = JSON.stringify(newStr2);
'12:00:00:12' <pre id='one'></pre> 
 
<hr> 
 
'9:40:00:12' <pre id='two'></pre>

0

嘗試使用splitjoin

EG 1:

var num = "12:00:00:12"; 
 
console.log(num.split(':', 2).join(':'));

EG 2:

var num = "9:00:00:12"; 
 
console.log(num.split(':', 2).join(':'));