Javascript 将字符串限制为逗号后的两个数字,且仅限一个逗号
下面的脚本只允许输入文本中的数字和逗号Javascript 将字符串限制为逗号后的两个数字,且仅限一个逗号,javascript,regex,Javascript,Regex,下面的脚本只允许输入文本中的数字和逗号 function validate(evt) { var theEvent = evt || window.event; var key = theEvent.keyCode || theEvent.which; key = String.fromCharCode( key ); var regex = /[0-9,]|\./; if( !regex.test(key) ) { theEvent.returnValue = fa
function validate(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var regex = /[0-9,]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}
<input type="text" name="price" onkeypress='validate(event)'>
验证函数只检查当前键,但需要检查输入元素的值。您可以使用如下模式:
/^\d+(,\d{0,2})?$/
function validate(evt, ele) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var value = ele.value + key;
var regex = /^\d+(,\d{0,2})?$/;
if( !regex.test(value) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}
<input type="text" name="price" onkeypress='validate(event, this)'>
/^\d+,\d{2}$/
var x = "123,456,7890";
var a = x.replace(/(,[0-9]{2})([0-9,]*)/, "$1");
这将匹配由数字序列组成的任何字符串,可以选择后跟逗号,最多两个数字
您的整个验证功能看起来有点像这样:
/^\d+(,\d{0,2})?$/
function validate(evt, ele) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var value = ele.value + key;
var regex = /^\d+(,\d{0,2})?$/;
if( !regex.test(value) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}
<input type="text" name="price" onkeypress='validate(event, this)'>
/^\d+,\d{2}$/
var x = "123,456,7890";
var a = x.replace(/(,[0-9]{2})([0-9,]*)/, "$1");
这将匹配由一系列数字组成的任何字符串,后跟一个逗号,后跟两个数字。开始(
^
)和停止($
)锚定确保匹配字符串前后不允许有其他字符。您的验证函数将只检查当前键,但需要检查输入元素的值。您可以使用如下模式:
/^\d+(,\d{0,2})?$/
function validate(evt, ele) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var value = ele.value + key;
var regex = /^\d+(,\d{0,2})?$/;
if( !regex.test(value) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}
<input type="text" name="price" onkeypress='validate(event, this)'>
/^\d+,\d{2}$/
var x = "123,456,7890";
var a = x.replace(/(,[0-9]{2})([0-9,]*)/, "$1");
这将匹配由数字序列组成的任何字符串,可以选择后跟逗号,最多两个数字
您的整个验证功能看起来有点像这样:
/^\d+(,\d{0,2})?$/
function validate(evt, ele) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var value = ele.value + key;
var regex = /^\d+(,\d{0,2})?$/;
if( !regex.test(value) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}
<input type="text" name="price" onkeypress='validate(event, this)'>
/^\d+,\d{2}$/
var x = "123,456,7890";
var a = x.replace(/(,[0-9]{2})([0-9,]*)/, "$1");
这将匹配由一系列数字组成的任何字符串,后跟一个逗号,后跟两个数字。开始(
^
)和停止($
)锚定确保匹配字符串前后不允许有其他字符。使用正则表达式替换,如下所示:
/^\d+(,\d{0,2})?$/
function validate(evt, ele) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var value = ele.value + key;
var regex = /^\d+(,\d{0,2})?$/;
if( !regex.test(value) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}
<input type="text" name="price" onkeypress='validate(event, this)'>
/^\d+,\d{2}$/
var x = "123,456,7890";
var a = x.replace(/(,[0-9]{2})([0-9,]*)/, "$1");
使用正则表达式替换,如下所示:
/^\d+(,\d{0,2})?$/
function validate(evt, ele) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var value = ele.value + key;
var regex = /^\d+(,\d{0,2})?$/;
if( !regex.test(value) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}
<input type="text" name="price" onkeypress='validate(event, this)'>
/^\d+,\d{2}$/
var x = "123,456,7890";
var a = x.replace(/(,[0-9]{2})([0-9,]*)/, "$1");