Javascript:如何动态创建和合并文本节点?
这是一个验证函数,它接收电子邮件输入,并使用match在坏数组中存储不正确的字符。我想做的是能够画一条线通过不正确的字符使用的S标签。如果电子邮件有一个无效字符,如ab+c@abc.abc,这条线穿过“+”正确,并显示ab+c@abc.abc但是,如果存在多个无效字符,例如a+b+c@abc.abc,两个“+”都将被划掉,但当它显示在屏幕上时,它们将彼此相邻移动,例如ab++c@abc.abc. 我需要有关如何将此文本显示为a+b的帮助+c@abc.abc.Javascript:如何动态创建和合并文本节点?,javascript,html,arrays,string,nodes,Javascript,Html,Arrays,String,Nodes,这是一个验证函数,它接收电子邮件输入,并使用match在坏数组中存储不正确的字符。我想做的是能够画一条线通过不正确的字符使用的S标签。如果电子邮件有一个无效字符,如ab+c@abc.abc,这条线穿过“+”正确,并显示ab+c@abc.abc但是,如果存在多个无效字符,例如a+b+c@abc.abc,两个“+”都将被划掉,但当它显示在屏幕上时,它们将彼此相邻移动,例如ab++c@abc.abc. 我需要有关如何将此文本显示为a+b的帮助+c@abc.abc. function validate(
function validate()
{
var str = document.getElementById("email").value;
var len = str.length;
var patt1 = /^[^;,\':\?\!\*#\^&@\+\-]+\w+@{1}\w+\.{1}\w+$/;
如果我们通过了正则表达式测试,那么电子邮件是有效的
if(patt1.test(str))
{
document.getElementById("validate").innerHTML = "valid";
}
否则,我们将存储坏的
else
{
alert("not a valid email");
document.getElementById("validate").innerHTML = "";
var bad = str.match(/[;,\':\?\!\*#\^&@\+\-]+/);
var wholestr = document.getElementById("validate");
var x = document.createElement("S");
在这里,我尝试在数组中动态创建变量,所有变量都有各自的文本节点。首先对无效字符执行此操作,然后对有效字符执行此操作。每一个新的文本节点都会附加到将显示在屏幕上的批发性文本中。其思想是每个字符都是自己的文本节点,这样无效字符就不会并排显示;然而,它仍然存在
for(var i = 0; i < len; i++)
{
for(var j = 0; j < bad.length; j++)
{
if(str[i] == bad[j])
{
var errors = [];
for(var k = 0; k < bad.length; k++)
{
errors[k] = document.createTextNode(bad[j]);
}
for(var k = 0; k < errors.length; k++)
{
x.appendChild(errors[k]);
wholestr.appendChild(x);
}
}
else
{
var valids = [];
for(var k = 0; k < str.length; k++)
{
valids[k] = document.createTextNode(str[i]);
}
wholestr.appendChild(valids[i]);
//var str1 = document.createTextNode("");
//str1.textContent = str[i];
//wholestr.appendChild(str1);
}
}
}
}
}
for(变量i=0;i
刚刚回答了这个问题,我的错误非常基本,它与包含S标记的x元素有关
function validate()
{
var str = document.getElementById("email").value;
var len = str.length;
var patt1 = /^[^;,\':\?\!\*#\^&@\+\-]+\w+@{1}\w+\.{1}\w+$/;
if(patt1.test(str))
{
document.getElementById("validate").innerHTML = "valid";
}
else
{
alert("not a valid email");
document.getElementById("validate").innerHTML = "";
var bad = str.match(/[;,\':\?\!\*#\^&@\+\-]+/);
var wholestr = document.getElementById("validate");
for(var i = 0; i < len; i++)
{
for(var j = 0; j < bad.length; j++)
{
if(str[i] == bad[j])
{
var errors = [];
函数验证()
{
var str=document.getElementById(“email”).value;
var len=str.length;
变量patt1=/^[^;,\':\?\!\*\ ^&@\+\-]+\w+@{1}\w+\.{1}\w+$/;
如果(第1部分测试(str))
{
document.getElementById(“验证”).innerHTML=“有效”;
}
其他的
{
警报(“非有效电子邮件”);
document.getElementById(“验证”).innerHTML=“”;
var bad=str.match(/[;,\':\?\!\*\ ^&@\+\-]+/);
var whistr=document.getElementById(“验证”);
对于(变量i=0;i
这里我需要的是另一个动态数组,该数组存储带有S标记的元素。因此,每个无效字符节点都将附加到它自己的文档中。createElement(“S”)
var x=[];
对于(var k=0;k
刚刚回答了这个问题,我的错误非常基本,它与包含S标记的x元素有关
function validate()
{
var str = document.getElementById("email").value;
var len = str.length;
var patt1 = /^[^;,\':\?\!\*#\^&@\+\-]+\w+@{1}\w+\.{1}\w+$/;
if(patt1.test(str))
{
document.getElementById("validate").innerHTML = "valid";
}
else
{
alert("not a valid email");
document.getElementById("validate").innerHTML = "";
var bad = str.match(/[;,\':\?\!\*#\^&@\+\-]+/);
var wholestr = document.getElementById("validate");
for(var i = 0; i < len; i++)
{
for(var j = 0; j < bad.length; j++)
{
if(str[i] == bad[j])
{
var errors = [];
函数验证()
{
var str=document.getElementById(“email”).value;
var len=str.length;
变量patt1=/^[^;,\':\?\!\*\ ^&@\+\-]+\w+@{1}\w+\.{1}\w+$/;
如果(第1部分测试(str))
{
document.getElementById(“验证”).innerHTML=“有效”;
}
其他的
{
警报(“非有效电子邮件”);
document.getElementById(“验证”).innerHTML=“”;
var bad=str.match(/[;,\':\?\!\*\ ^&@\+\-]+/);
var whistr=document.getElementById(“验证”);
对于(变量i=0;i
这里我需要的是另一个动态数组,该数组存储带有S标记的元素。因此,每个无效字符节点都将附加到它自己的文档中。createElement(“S”)
var x=[];
对于(var k=0;k
这是对第一段的编辑,当ab+c@abc.abc输入,结果为ab+c@abc.abcthis是对第一段的编辑,当ab+c@abc.abc输入,结果为ab+c@abc.abc