Javascript 货币文本框允许使用逗号和数字
Javascript allow comma and numeric for currency money textbox
JS:
<script>
$(document).ready(function () {
$("#Salary").keyup(function (e) {
var isFloatNumber = IsFloatOnly('input#Salary');
if (!isFloatNumber) {
e.preventDefault();
$("#ErrorMessage").text('Invalid value. Please enter numeric value.');
}
else {
$("#ErrorMessage").text('Success.');
}
});
});
function IsFloatOnly(element) {
var value = $(element).val();
var regExp = "^\d+(\,\d+)?$";
return value.match(regExp);
}
</script>
Html:
<input type="Text" id="Salary" maxlength="20" name="Salary" />
<label id="ErrorMessage"></label>
问题:
如果我写值如下,
100,00
100,00 是 okay.Message 显示 成功
然而
如果我写值如下,
1,000,05
10,000,00
显示错误消息无效值。
根据我在 javascript ?
谢谢
您的正则表达式只允许一个逗号。 ?
量词表示零个或一个前面的元素。如果您想允许任意数量的它们,请使用 *
.
var regExp = /^\d+(,\d+)*$/;
此外,使用 RegExp 文字,这样您就不必转义反斜杠。并且不需要在正则表达式中转义逗号。
$(document).ready(function() {
$("#Salary").keyup(function(e) {
var isFloatNumber = IsFloatOnly('input#Salary');
if (!isFloatNumber) {
e.preventDefault();
$("#ErrorMessage").text('Invalid value. Please enter numeric value.');
} else {
$("#ErrorMessage").text('Success.');
}
});
});
function IsFloatOnly(element) {
var value = $(element).val();
var regExp = /^\d+(,\d+)*$/;
return value.match(regExp);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="Text" id="Salary" maxlength="20" name="Salary" />
<label id="ErrorMessage"></label>
将正则表达式更改为
var regExp = "^\d+(\,\d+)*$";
它适用于任意数量的逗号分隔数字
JS:
<script>
$(document).ready(function () {
$("#Salary").keyup(function (e) {
var isFloatNumber = IsFloatOnly('input#Salary');
if (!isFloatNumber) {
e.preventDefault();
$("#ErrorMessage").text('Invalid value. Please enter numeric value.');
}
else {
$("#ErrorMessage").text('Success.');
}
});
});
function IsFloatOnly(element) {
var value = $(element).val();
var regExp = "^\d+(\,\d+)?$";
return value.match(regExp);
}
</script>
Html:
<input type="Text" id="Salary" maxlength="20" name="Salary" />
<label id="ErrorMessage"></label>
问题:
如果我写值如下,
100,00
100,00 是 okay.Message 显示 成功
然而
如果我写值如下,
1,000,05
10,000,00
显示错误消息无效值。
根据我在 javascript ?
谢谢
您的正则表达式只允许一个逗号。 ?
量词表示零个或一个前面的元素。如果您想允许任意数量的它们,请使用 *
.
var regExp = /^\d+(,\d+)*$/;
此外,使用 RegExp 文字,这样您就不必转义反斜杠。并且不需要在正则表达式中转义逗号。
$(document).ready(function() {
$("#Salary").keyup(function(e) {
var isFloatNumber = IsFloatOnly('input#Salary');
if (!isFloatNumber) {
e.preventDefault();
$("#ErrorMessage").text('Invalid value. Please enter numeric value.');
} else {
$("#ErrorMessage").text('Success.');
}
});
});
function IsFloatOnly(element) {
var value = $(element).val();
var regExp = /^\d+(,\d+)*$/;
return value.match(regExp);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="Text" id="Salary" maxlength="20" name="Salary" />
<label id="ErrorMessage"></label>
将正则表达式更改为 var regExp = "^\d+(\,\d+)*$"; 它适用于任意数量的逗号分隔数字