如何修改下面的脚本,以便它不仅在字段为空时发出警报,而且当字段为空或包含少于10位数字时(它可以包含任何内容,而不仅仅是数字)?
if (myform.mytextinput.value=="")
alert ('Please enter something!");
检查十位数的好脚本是:
var input_dg = document.getElementById("mytextinput");
var text_dg = input_dg.value;
var totalNrOfDigits = 0;
for(var i = 0; i < text_dg.length; i++){
if(/\d/.test(text_dg[i])){
totalNrOfDigits++;
}
}
alert ('Please enter at least 10 digits!');
我只需要在第一个脚本中“粘贴”第二个脚本,但我缺乏专业知识。这两个脚本都在一个大型表单验证脚本中......
答案 0 :(得分:5)
只需使用||
,OR operator:
if (myform.mytextinput.value=="" || myform.mytextinput.length < 10)
要计算字符串中的位数,我建议使用此代码(来自this SO answer):
var totalNrOfDigits = myform.mytextinput.replace(/[^0-9]/g,"").length;
// And now combine both checks:
if (myform.mytextinput.value=="" || totalNrOfDigits < 10){
// Alert the user
}
如果你想使用你使用的相同代码,你只需要替换第一部分:
var input_dg = document.getElementById("mytextinput");
var text_dg = input_dg.value;
var totalNrOfDigits = 0;
for(var i = 0; i < text_dg.length; i++){
if(/\d/.test(text_dg[i])){
totalNrOfDigits++;
}
}
if (myform.mytextinput.value=="" || totalNrOfDigits < 10){
// Alert the user
}
答案 1 :(得分:2)
使用OR(||)
:
if (myform.mytextinput.value=="" || myform.mytextinput.length < 10)
答案 2 :(得分:2)
您可以使用正则表达式计算它们
var str ='1a2b3',
digits = (str).match(/\d+/g); // returns ["1", "2", "3"]
if ((! str.length) || (! digits) || (digits.length < 10)) {
alert ('Please enter at least 10 digits!');
}
答案 3 :(得分:1)
你想要这个吗?
var input_dg = document.getElementById("mytextinput");
var text_dg = input_dg.value;
if(text_dg == "") {
alert ('Please enter something!');
} else if(text_dg.length < 10) {
alert("Please enter at least 10 digits!");
}