如何更换除号[所有字符0-9
使用]的Javascript?
这是我的代码,
function test_fn(xxx) { var xxx = xxx.replace(/[^0-9,.]+/g, ""); document.getElementById("fid").value = xxx; }
<input onkeyUp="test_fn(this.value)" id="fid">
但是,当用户填写012345...
我的代码不能代替点[ .
]如何做更换点[ .
]呢?
如果你只是想保留号码,然后替换一切,是不是数字\ d =号。
function test_fn(xxx) {
var xxx = xxx.replace(/[^\d]/g, "");
document.getElementById("fid").value = xxx;
}
可能正则表达式来使用是:
/\D/g //\D is everything not \d
/[^\d]/g //\d is numerical characters 0-9
/[^0-9]/g //The ^ inside [] means not, so in this case, not numerical characters
在G表示匹配搜索的所有可能性,所以没有必要用+来匹配其他任何东西。
你会发现这个工具使用正则表达式时非常有用的,它有可能接受字符的解释在底部使用权。
您正则表达式更改为以下:
var xxx = "12.3te.st.45";
xxx = xxx.replace(/[^0-9]+/g, "");
alert(xxx);
https://jsfiddle.net/891n0hx0/
这样,它消除了任何不是0-9。
<input type="text" value="" onkeypress="return isNumber(event)" />
<script type="text/javascript">
function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
</script>
就拿点和逗号出来的正则表达式。
顺便说一句,你可以只取件( this
)作为参数,并更新value
属性。 有了这个模式,你可以使用其他输入的功能也是如此。
function test_fn(element) { element.value = element.value.replace(/[^0-9]+/g, ""); }
<input onkeyUp="test_fn(this)" id="fid">
您不必如果你有不舒适的使用正则表达式。 这是一种非正则表达式版本容易理解。
var str = "12AGB.63"
str = str.split("").filter(function(elem){
return parseInt(elem)
}).join("")
分割功能以“”作为参数将变换阵列为字符串。
加盟与“功能”作为参数将转换字符串数组
这里是Array.prototype.filter的描述:
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/filter