【发布时间】:2012-12-10 06:15:29
【问题描述】:
我有两个字符串应该放在一个字符串中。第一个字符串是输入值,第二个字符串是第一个字符串的样式。
下面是示例 -
输入字符串( var val ) - 9165678823
模式字符串( var mask ) - (999)999-9999
输出字符串应该看起来像( var startVal ) - (916)567-8823
我试过了锻炼,这是我的代码
var val = $(control).data("loadMaskValue"); // Input Value
var mask = $(control).attr("mask"); //Masking Pattern
var startVal = "";
var j = 0;
for (var i = 0; i < mask.length; i++) {
var c = mask.charAt(j);
if (c == '9' || c == 'X' || c == 'A') { //Checks the char is normal char
startVal += val.charAt(j);
}
else {
startVal += c; //Inserts the special char to string like ( ) -
startVal += val.charAt(j);
}
j = startVal.length;
}
这段代码的问题是它错过了中间的一个数字。这段代码的结果是
startValue - (965)688-2。
请帮帮我。
【问题讨论】:
-
你不能只解析输入并构造一个新字符串吗?查看输入,当 i==0 时添加
(,当 i==2 时添加)。 -
模式可以是动态的。你不能硬编码 i 的值。
标签: javascript jquery string algorithm loops