Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:如何动态创建和合并文本节点?_Javascript_Html_Arrays_String_Nodes - Fatal编程技术网

Javascript:如何动态创建和合并文本节点?

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(

这是一个验证函数,它接收电子邮件输入,并使用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()
{
  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