子串不能处理返回的ajax数据对象字段

时间:2012-11-06 04:09:14

标签: javascript jquery

我不确定为什么这不起作用,但CellPhone的返回值格式为9999999999

我需要在其中插入破折号以便它999-999-9999所以我尝试了这个:

$("#member-cellPhone-value").html(data[0].CellPhone.substring(0, 2) + '-' + data[0].CellPhone.substring(3, 5) + '-' + data[0].CellPhone.substring(6,9));

当页面呈现它实际上什么都没有呈现时。但是,如果我只是做一个严格的数据[0] .CellPhone,它确实渲染了9999999999格式

所以换句话说,我尝试添加这些破折号并不起作用,实际上完全隐藏了这个值

5 个答案:

答案 0 :(得分:2)

检查data[0].CellPhone是否有值且字符串不是数字

答案 1 :(得分:2)

首先确保data[0].CellPhone的类型为字符串。如果没有,您可以通过data[0].CellPhone.toString()

将其转换为字符串

其次你的分裂逻辑是错误的,应该如下所示

x.substring(0,3) + '-' + x.substring(3, 6) + '-' + x.substring(6,10)

其中x是包含电话号码为字符串的变量。

答案 2 :(得分:1)

正如大家所说,请确保.toString(),听起来确实类似数字

获取数字的另一种方法是使用简单的正则表达式.match(),我认为当你将数字放入html中时它会更具可读性。

var p = data[0].CellPhone.toString().match(/(\d{3})(\d{3})(\d{4})/);

$("#member-cellPhone-value").html(p[1] '-' + p[2] + '-' + p[3]);

答案 3 :(得分:0)

尝试使用简单的js

<script type="text/javascript">
var phonenum = '9999999999'; 
var phone= phonenum.substring(0, 2) + '-' + phonenum.substring(3, 5) + '-' +      phonenum.substring(6,9);
alert(phone);

</script>

答案 4 :(得分:0)

<script type="text/javascript">
var number = '9999999999';
var changedNumber = number.replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3");

alert(number);
</script>