验证文本框中特定字符串的Javascript
这里是文本框结果的样子 目标是验证验证文本框中特定字符串的Javascript,javascript,asp.net,Javascript,Asp.net,这里是文本框结果的样子 目标是验证name.domain,方法是确保用户在提交前将name.domain替换为textbox上的服务器名。如果用户没有用他们的服务器名替换name.domain,那么它将发送警报消息并返回false,直到用户正确替换为止 这是我的密码 function DomainValidate() { var arrayOfLines = document.getElementById('txt').value.split('/n'); a
name.domain
,方法是确保用户在提交前将name.domain
替换为textbox上的服务器名。如果用户没有用他们的服务器名替换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;
}
}
}
函数域验证(){
var arrayOfLines=document.getElementById('txt').value.split('/n');
arrayOfLines.shift();//使用shift跳过第一行
对于(i=0;i
我不确定这些是否正确,因为我无法调试javascript。我看到的第一个问题是换行符的字符不正确。它应该是
\n
而不是/n
。我看到的第二个问题是I
是一个全局变量,而它应该是局部变量。第三个问题是arrayOfLines[I]。拆分(“”,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;
}
}
}
函数域验证(){
var arrayOfLines=document.getElementById('txt').value.split('\n');
arrayOfLines.shift();//使用shift跳过第一行
对于(变量i=0;i
据我所知,在不进行测试的情况下,这应该可以像预期的那样工作。但测试这一点的最佳方法是使用。添加html和此脚本,并调用它以查看它是否产生预期的结果。我认为最简单的方法 假设textbox的id是DomainText
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;
}
}
我正在测试和调试javascript,
domainName
接收到空字符串,它应该是我遗漏的name.doman,甚至我用服务器名替换了它。但是ArrayOfLines确实有144.68.238.87 name.domain
。我怀疑这与错误的拆分方式有关?它必须做特定的whitesp吗ace还是应该不管第二部分有多少空格?我在JSFIDLE中测试后更新了代码。现在应该可以为您工作了。另一个问题是循环继续在last name.domain行之后运行,它可能从下一个空行获得空字符串。您知道如何防止到达最后一行然后停止它吗从读取空行开始。哦,嘿,对不起,您需要做的就是使用arrayOfLines[i+1]
提前检查arrayOfLines
中的下一个元素,并验证该行是否为非空。请确保验证i+1
生成的索引是否小于arrayOfLines。不过,长度
会出错。
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;
}
}