将 JavaScript 最小长度验证添加到文本字段

Add JavaScript min length validation to text field?

本文关键字:添加 文本 字段 验证 JavaScript      更新时间:2023-09-26

我目前正在使用 JavaScript 代码来验证用户键入字母 a-z 时的文本字段。如果有效,脚本会显示一个勾号,如果无效,则显示一个叉号。现在我正在尝试添加到代码中,以检查字母是否满足至少 4 个字符的最小长度,如果满足最小字符,则显示勾号,如果文本低于最小字符长度,则显示叉号。

如何调整脚本以检查输入字符的最小长度?还有人可以告诉我如何允许"-"在我的验证中被允许吗?

脚本:

<script>
function validateCname(CnameField){
        var reg = /^[A-Za-z]+$/; 
        if (reg.test(CnameField.value) == false) 
        {
            document.getElementById("emailTick").style.display='none'; // Hide tick if validation Fails
            document.getElementById("emailCross").style.display='block';
            return false;
        }
        if (reg.test(CnameField.value) == true)
        document.getElementById("emailCross").style.display='none';
        document.getElementById("emailTick").style.display='block';
        return true;
}
</script>

试:

<script>
function validateCname(CnameField){
        var reg = /^[A-Za-z]+$/; 
        var len = {min:4,max:60};

        if (reg.test(CnameField.value) == false) 
        if(input.value.length>!=len.min) return flase;
        {
            document.getElementById("emailTick").style.display='none'; // Hide tick if validation Fails
            document.getElementById("emailCross").style.display='block';
            return false;
        }
        if (reg.test(CnameField.value) == true)
        document.getElementById("emailCross").style.display='none';
        document.getElementById("emailTick").style.display='block';
        return true;
}
</script>

差不多了,但你有一些语法问题,所以我为你创建了一个示例测试脚本:

function validateValue(value) {
  var reg = /^[A-Za-z]+$/g; 
  var len = {min:4,max:60};
  if (!reg.test(value)) {
    console.log('didn''t match regex');
    return false;
  }
  if (value.length < len.min || value.length > len.max) {
    console.log('incorrect length: ' + value);
    return false;
  }
  console.log('correct length: ' + value);
  return true;
}
validateValue('teststring');

注意我是如何设置正则表达式测试的,删除 == 假?它不是必需的,因为返回了 false 或数组。如果返回 null 或 false 以外的任何内容,则 true 测试将返回 true。

试试这个

<script>
function validateCname(CnameField){
        var reg = /^[A-Za-z]+$/; 
        var len = {min:4,max:60};

        if (reg.test(CnameField.value) == false) {
            if(input.value.length<len.min) 
            {
                document.getElementById("emailTick").style.display='none'; // Hide tick if validation Fails
                document.getElementById("emailCross").style.display='block';
                return false;
            }
            return false;
        }
        if (reg.test(CnameField.value) == true)
        document.getElementById("emailCross").style.display='none';
        document.getElementById("emailTick").style.display='block';
        return true;
}
</script>
const validateCname = value => value.length < 4  ?  `success message` : `error message`
function validateCname(value1)
{
var k = value1;
if(k.length<4){
//Your code if length is less than 4 
}else{
//Your code if length is more than 4 
}
}