Javascript从文本框验证特定的字符串

时间:2014-11-04 21:07:26

标签: javascript asp.net

这里是文本框结果的样子,

Please add the following DNS entries
144.68.238.87   name.domain 
144.68.238.88   name.domain 
144.68.238.89   name.domain

目标是通过确保用户在提交之前将name.domain替换为文本框上的服务器名称来验证name.domain。如果用户没有用他们的服务器名称替换name.domain,那么它将发送警告消息并返回false,直到用户正确地替换它。

这是我的代码,

function DomainValidate() {

        var arrayOfLines = document.getElementById('txt').value.split('/n');

        arrayOfLines.shift(); //use shift to skip the first line

        for (i = 0; i < arrayOfLines.length; i++) {

           //somewhere here need to split to get name.domain and then verify it
            var domainName = arrayOfLines[i].split(" ", 2);

            if(domainName.Equals("name.domain")
            {
               alert("You must replace name.domain to your new server name");
               return false;
            }
        }

}

我不确定这些是否正确,因为我无法调试javascript。

2 个答案:

答案 0 :(得分:1)

我可以看到的第一个问题是换行符的字符不正确。它应该是\n而不是/n。我看到的第二个问题是i是一个全局变量,它应该是本地变量。第三个问题是arrayOfLines[i].split(' ', 2);返回一个数组,但你正在对它进行处理,就好像它在下一行if (domainName.Equals('name.domain')返回一个字符串。

通过这些更正,您的代码看起来更像是这样:

function domainValidate() {
    var arrayOfLines = document.getElementById('txt').value.split('\n');

    arrayOfLines.shift(); //use shift to skip the first line

    for (var i = 0; i < arrayOfLines.length; i++) {
        var line = arrayOfLines[i].trim();
        // Grab the second part of the split line, which represents the domain name
        var parts = line.split(' ');
        var domainName = parts[parts.length - 1];

        if (!domainName || domainName === 'name.domain') {
            alert("You must replace name.domain to your new server name");
            return false;
        }
    }
}

据我所知,未经测试,这应该按预期工作。测试此方法的最佳方法是使用jsfiddle。添加你的html和这个脚本并调用它以查看它是否产生了预期的结果。

答案 1 :(得分:0)

我认为最简单的方式

假设textbox的id是domainTxt

src = document.getElementById("domainTxt");
if(verifyInput(src.value)){
    //submit your form here
} else
{
    return false;
}

function verifyInput(txtVal){
    if(txtVal.indexOf("name.domain") >-1){
        return false;
    }else {
        return true;
    }
}