如何计算没有“ - ”和“()”的字符数?

时间:2017-03-03 03:54:14

标签: javascript jquery html

我有一个电话号码和字段长度计数器的输入字段。当我计算它的长度时,如何在字段中忽略“ - ”,空格和“()”? 我的意思是,如果输入值看起来像“(099)99-99”,我调用val().length时的长度应为7,而不是11。

var phoneInput = getElementById("phone");
var counter = getElementById("lengthCounter");

counter.text(phoneInput.val().length);

5 个答案:

答案 0 :(得分:1)

尝试使用正则表达式。\D匹配所有non-digit字符,gglobal修饰符,用于正则表达式。Replace所有非数字空字符串然后计算字符串的长度。

var string = "(099) 99-99";
console.log(string.replace(/\D/g,'').length);

答案 1 :(得分:1)

通过用空字符串替换所有出现的字符,输出的长度就是你要找的。

const  value = phoneInput.val();

value.replace(/[\-\(\)]/g, '').length // replace "-", "(", ")" by empty string

const phoneInput = document.querySelector('input');
const  value = phoneInput.value;
    
 console.log(   
    value.replace(/[\-\(\)]/g, '').length
 )   
    
<input value="(32)-(123)-(4444)" />

答案 2 :(得分:0)

这将替换任何非空数的数字。

counter.text(phoneInput.val().replace(/[^\d]/g, '').length) 

答案 3 :(得分:0)

检查一下!无需编写多行代码。

function count() {
    var x = document.getElementById("phonenumber");
    var count = x.value.replace(/[^0-9]/g,"").length;
    $("#displaycount").text("Number Count "+count);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Enter your Number: <input type="text" placeholder="example (99) 99-999" id="phonenumber" onkeyup="count()">
<br/><br/>
<div id="displaycount"></div>

答案 4 :(得分:0)

none digit (\D)替换为&#34;&#34;然后计算新字符串的长度。

&#13;
&#13;
var phoneNum = "(+84) 122 - 384 - 6471";
var count = phoneNum.replace(/\D/g, "").length;
alert(count);
&#13;
&#13;
&#13;