我有一個13位數字的值,如1231234123412
,我想用點將這個數字拆分爲###.####.####.##
。如何在javascript中將字符串/數字格式化爲自定義模式?
結果值必須看起來像123.1234.1234.12
我怎麼能在4塊分割值(###。####。####。##)使用JavaScript,angularjs甚至經常表達?
我有一個13位數字的值,如1231234123412
,我想用點將這個數字拆分爲###.####.####.##
。如何在javascript中將字符串/數字格式化爲自定義模式?
結果值必須看起來像123.1234.1234.12
我怎麼能在4塊分割值(###。####。####。##)使用JavaScript,angularjs甚至經常表達?
您可以從RegEx開始。您需要查找並替換原始值的內容並將其替換爲您喜歡的值。
您可能需要一個這樣的腳本:
function addCommas(nStr)
{
return nStr.substring(0,3) + "." + nStr.substring(3, 7) + "." + nStr.substring(7, 11) + "." + nStr.substring(11, 13);
}
片段
function addCommas(nStr) {
return nStr.substring(0,3) + "." + nStr.substring(3, 7) + "." + nStr.substring(7, 11) + "." + nStr.substring(11, 13);
}
$("#new_number").change(function(){
this.value = addCommas(this.value.replace(',', ''));
});
$('#Enter_Number').keyup(function(){
$('#new_number').val($('#Enter_Number').val()).trigger("change");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
Enter Number: <input type="text" id="Enter_Number" maxlength="13" /><br><br>
Format result : <input type="text" id="new_number" >
前瞻:
OP正在詢問'3 4 3 2'數字位置,而不是簡單的千位。 –
@DanielCheung當然,會糾正它。給我一點時間。 –
謝謝大家。正則表達式看起來很完美,但對於我的小問題來說相當複雜。我更喜歡substring()。 – user4500
function splitValue(value) {
return value.substring(0, 3) + "." + value.substring(3,7)+"."+value.substring(7, 11) + "." + value.substring(11,value.length);
}
alert(splitValue("1231234123412"));
您可以使用此功能。
你可以用substring()
像這樣做:
var temp = "1231234123412";
temp = temp.substring(0,3) + "." + temp.substring(3, 7) + "." + temp.substring(7, 11) + "." + temp.substring(11, 13);
window.alert(temp);
這將僅適用於13位數字的工作,所以如果這是你將永遠有那麼你應該怎樣確定。
你可以用普通的JavaScript來做到這一點。定義一個方法,你可以用任何你需要的長度和模式來格式化任何字符串。第一個參數是帶有佔位符的字符串。 0-12是佔位符,必須放置在{}之內。第二個參數是一個包含要使用的值的字符串。
看看下面的方法:
function formatWithPlaceholder(text, values){
values = values.toString();
var pattern = /\{\{|\}\}|{(\d+)}/g;
var formattedString = text.replace(pattern, function(match, group){
var value;
if(match === "{{"){
return "{";
}
if(match === "}}"){
return "}";
}
value = values[parseInt(group, 10)];
return value ? value.toString() : "";
});
return (values.length > 0) ? formattedString : "";
}
var resultString = formatWithPlaceholder("{0}{1}{2}.{3}{4}{5}{6}.{7}{8}{9}{10}.{11}{12}","1231234123412");
您可以使用正則表達式:
var number = "1231234123412";
var temp = (number.substring(0,3) + "." + number.substring(3, 7) + "." + number.substring(7, 11) + "." + number.substring(11, 13)).replace('..', '');
console.log(temp);
因爲如果數量= 「1231234」,你會得到「 123.1234「,而不是」123.1234 ..「
最簡單優雅的格式是usi NG正則表達式:
function fmt3442(str){
var src = /^(\d{3})(\d{4})(\d{4})(\d{2})$/
var dst = '$1.$2.$3.$4'
return str.replace(src, dst)
}
這並不涉及到angularjs ...... -_- –
平原老'javascript'應該在'子工作的樣子()'。 – brso05