从值中只获取数字并从文本字段计算长度

时间:2014-09-03 05:37:06

标签: javascript jquery

我有一个文本字段

<input id="prime-phone" class="number-format" name="prime-phone" placeholder="" type="tel">

如果有固定值,那就是"(432)432-2432"

我想计算数字的长度而不是特殊字符,例如&#34;(&#34;,&#34; - &#34;

我正在尝试这种方式而且我也知道我做错了什么

sd = $(".number-format").val();
alert(sd);
sd = parseInt(sd)
alert(sd)

数字格式可以更改为"(432)432-2432""(43)-(432)-2432"

由于 提前寻求帮助:)

4 个答案:

答案 0 :(得分:1)

使用正则表达式匹配数字和计数:

sd.match(/\d/g).length

答案 1 :(得分:1)

var sd = $(".number-format").val();
//i want to count the length of number only not the special character like "(" , "-"
var len = sd.match(/\d/g).length;

试试吧

答案 2 :(得分:1)

使用replace()删除非数字字符并计算

sd=$(".number-format").val();  
alert(sd);  
len=sd.replace(/\D/g,'').length;
// \D used to match all non-digit character
alert(len);

DEMO

答案 3 :(得分:0)

可重复使用的解决方案。 一旦定义,你可以调用它们来排除不需要的字符并获得长度。我发现这更容易维护。

var tel = "(432)432-2432";    

var getLength = function(tel){
  var telStr = tel.split('');
  var excpetionList = ['(',')','-']; //<-- here you can add the chars to remove
  return telStr.filter(function(item,index,arr){
     if(excpetionList.indexOf(item) < 0){
       return item;
     }
  }).join('').length;
};

console.log(getLength(tel));

demo