JavaScript中数字字符的表单验证
我想使用JavaScript执行表单验证,以检查输入字段是否只包含数字字符。到目前为止,验证检查字段是否为空-这很好。但是,数字字符验证不起作用。如果有任何帮助,我将不胜感激。非常感谢JavaScript中数字字符的表单验证,javascript,Javascript,我想使用JavaScript执行表单验证,以检查输入字段是否只包含数字字符。到目前为止,验证检查字段是否为空-这很好。但是,数字字符验证不起作用。如果有任何帮助,我将不胜感激。非常感谢 <script type="text/javascript"> //form validation function validateForm() { var x=document.forms["cdp_form"]["univer_number"].value if (x==null || x=="
<script type="text/javascript">
//form validation
function validateForm()
{
var x=document.forms["cdp_form"]["univer_number"].value
if (x==null || x=="")
{
alert("University number (URN) field must be filled in");
cdp_form.univer_number.focus();
return false;
}
else if (is_valid = /^[0-9]+$/.test(x))
{
alert("University number (URN) field must have numeric characters");
cdp_form.univer_number.focus();
return false;
}
}
</script>
<input type ="text" id="univer_number" maxlength="7" size="25" name="univer_number" />
//表单验证
函数validateForm()
{
var x=文件.forms[“cdp\U表单”][“univer\U编号”]。值
如果(x==null | | x==“”)
{
警报(“必须填写大学编号(URN)字段”);
cdp_form.univer_number.focus();
返回false;
}
else if(是否有效=/^[0-9]+$/.test(x))
{
警报(“大学编号(URN)字段必须有数字字符”);
cdp_form.univer_number.focus();
返回false;
}
}
在你写有的行中,如果(is_valid=/^[0-9]+$/.test(x))
,你在做一个简单的赋值,而不是测试它是否与正则表达式匹配。你的测试条件有点奇怪:
else if (is_valid = /^[0-9]+$/.test(x))
为什么与的冗余比较有效?只要做:
else if (/^[0-9]+$/.test(x))
尽管您正在使用的正则表达式将匹配数字,并且只匹配数字-您需要将其更改为匹配任何非数字的内容-例如/^[^0-9]+$/
更好的方法是,完全去掉正则表达式并使用:
您需要测试RegExp的否定,因为您希望验证在失败时发出警报,所以只需添加代码>在它前面:
else if (is_valid = !/^[0-9]+$/.test(x))
如果正则表达式必须是数字,则可以在Javascript中使用IsNumeric
IsNumeric('1') => true;
IsNumeric('145266') => true;
IsNumeric('abc5423856') => false;
您需要反转正则表达式(在[0-9]中添加^
我知道这是一个老帖子,但我想我会发布对我有用的东西。我根本不要求填写字段,但如果是,则必须填写数字:
function validateForm()
{
var x=document.forms["myformName"]["myformField"].value;
if (/[^0-9]+$/.test(x))
{
alert("Please enter a numerical amount without a decimal point");
myformName.myformField.focus();
return false;
}
}
您的模式仍将接受此输入@$@#123
或广告@#12
。使用我创建的模式:
/[a-zA-Z-!@#$%^&*()_+\=\[\]{};':"\\|,.<>\/?]/
/[a-zA-Z-!@$%^&*()\+\=\[\]{};:“\\\\\\,.\/?”/
此模式将检查是否为字母和特殊字符。“不起作用。”“这是描述问题的糟糕方式。什么不起作用?你有错误吗?它没有提供我想要的验证错误。别担心,问题已经解决了——请看公认的答案。我担心,因为我希望您接下来的问题有更好的描述。尽管看起来很奇怪,但它仍然会产生正确的结果(至少在chrome中是如此),非常感谢你的回答。它很有效——很容易忽略这样的错误。
function validateForm()
{
var x=document.forms["myformName"]["myformField"].value;
if (/[^0-9]+$/.test(x))
{
alert("Please enter a numerical amount without a decimal point");
myformName.myformField.focus();
return false;
}
}
/[a-zA-Z-!@#$%^&*()_+\=\[\]{};':"\\|,.<>\/?]/