好的,这是一个新手问题:
//function removes characters and spaces that are not numeric.
// time = "2010/09/20 16:37:32.37"
function unformatTime(time)
{
var temp = "xxxxxxxxxxxxxxxx";
temp[0] = time[0];
temp[1] = time[1];
temp[2] = time[2];
temp[3] = time[3];
temp[4] = time[5];
temp[5] = time[6];
temp[6] = time[8];
temp[7] = time[9];
temp[8] = time[11];
temp[9] = time[12];
temp[10] = time[14];
temp[11] = time[15];
temp[12] = time[17];
temp[13] = time[18];
temp[14] = time[20];
temp[15] = time[21];
}
在FireBug中,我可以看到时间中的字符未分配给temp? 我是否必须使用replace()函数在JS中执行此类操作?
谢谢。
答案 0 :(得分:4)
[^\d]
是“非数字”的正则表达式。
更详细,
[]
表示“字符类”或要匹配的字符组
\d
是0-9
或任何数字的快捷方式
字符类中的^
否定了该类。
function unformat(t)
{
return t.replace( /[^\d]/g, '' );
}
无论如何,您无法在其中一个主要浏览器中访问类似的字符串。您需要使用str.charAt(x)
。
答案 1 :(得分:3)
你绝对应该使用正则表达式。
function unformatTime(time) {
return time.replace(/[^\d]/g, '');
}
在这种情况下,它会查找任何非数字的内容并替换为空字符串。最后的'g'表示“全局”,因此它将尽可能多地替换它。
^
括号内的意思是“不是”\d
这意味着“数字”g
这意味着“全球”