如何在javascript中将字符串/数字格式化为自定义模式?
我有一个13位的值,比如如何在javascript中将字符串/数字格式化为自定义模式?,javascript,Javascript,我有一个13位的值,比如1231234123412,我想把这个数字用点分割成下面的模式。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 结果值必须类似于123.1234.1234.12 如何使用javascript、angularjs甚至正则表达式将值拆分为4个块(############################?#?)呢?可以从正则表达式开始。您需要查找并替换原始值的内容,并将其替换为您喜欢的值 您可能需要这样的脚本: functi
1231234123412
,我想把这个数字用点分割成下面的模式。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
结果值必须类似于123.1234.1234.12
如何使用javascript、angularjs甚至正则表达式将值拆分为4个块(############################?#?)呢?可以从正则表达式开始。您需要查找并替换原始值的内容,并将其替换为您喜欢的值 您可能需要这样的脚本:
function addCommas(nStr)
{
return nStr.substring(0,3) + "." + nStr.substring(3, 7) + "." + nStr.substring(7, 11) + "." + nStr.substring(11, 13);
}
片段
函数addCommas(nStr){
返回nStr子串(0,3)+“+nStr子串(3,7)+”+nStr子串(7,11)+“+nStr子串(11,13);
}
$(“#新#U编号”)。更改(函数(){
this.value=addCommas(this.value.replace(',','');
});
$(“#输入_编号”).keyup(函数(){
$('new#u number').val($('Enter#u number').val()).trigger(“change”);
});代码>
输入号码:
格式化结果:
您可以从正则表达式开始。您需要查找并替换原始值的内容,并将其替换为您喜欢的值
您可能需要这样的脚本:
function addCommas(nStr)
{
return nStr.substring(0,3) + "." + nStr.substring(3, 7) + "." + nStr.substring(7, 11) + "." + nStr.substring(11, 13);
}
片段
函数addCommas(nStr){
返回nStr子串(0,3)+“+nStr子串(3,7)+”+nStr子串(7,11)+“+nStr子串(11,13);
}
$(“#新#U编号”)。更改(函数(){
this.value=addCommas(this.value.replace(',','');
});
$(“#输入_编号”).keyup(函数(){
$('new#u number').val($('Enter#u number').val()).trigger(“change”);
});代码>
输入号码:
格式结果:
你可以使用这个功能
您可以使用此函数。您可以使用子字符串()这样做。
:
var temp=“1231234123412”;
温度=温度子串(0,3)+“+”+温度子串(3,7)+“+温度子串(7,11)+”+温度子串(11,13);
窗口报警(温度)代码>您可以使用substring()
这样做:
var temp=“1231234123412”;
温度=温度子串(0,3)+“+”+温度子串(3,7)+“+温度子串(7,11)+”+温度子串(11,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");
这里有一个问题:您可以使用普通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");
这是提琴:您可以使用regexp:
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);
因为如果number=“1231234”您将得到“123.1234”,而不是“123.1234..”您可以使用regexp:
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);
因为如果number=“1231234”您将得到“123.1234”,而不是“123.1234..”最简单、最优雅的格式是使用正则表达式:
function fmt3442(str){
var src = /^(\d{3})(\d{4})(\d{4})(\d{2})$/
var dst = '$1.$2.$3.$4'
return str.replace(src, dst)
}
最简单、最优雅的格式是使用正则表达式:
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
应该可以工作看看substring()
。这与angularjs无关-_-普通旧的javascript
应该可以工作,看看substring()
。OP要求的是3 4 3 2
数字的位置,而不是普通的千位。@DanielCheung肯定会纠正它。给我几秒钟,谢谢大家。正则表达式看起来很完美,但对于我的小问题来说相当复杂。我更喜欢子字符串()。OP要求的是数字的位置,而不是普通的千位。@DanielCheung肯定会纠正它。给我几秒钟,谢谢大家。正则表达式看起来很完美,但对于我的小问题来说相当复杂。我更喜欢子字符串()。