Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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 将所有\n替换为<;br/>;,所有不在内部的<;textarea></textarea>;标签_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 将所有\n替换为<;br/>;,所有不在内部的<;textarea></textarea>;标签

Javascript 将所有\n替换为<;br/>;,所有不在内部的<;textarea></textarea>;标签,javascript,jquery,regex,Javascript,Jquery,Regex,有一个javascript字符串 var s = ' hi there \n <textarea> hello \n there </texarea> hi \n hi'; 将所有内容放在div中,并将\n所需的标记放在span中。因此,第一个\n将是第一个子项,文本区域外的第二个\n将是最后一个子项 然后可以调用div的第一个子级和最后一个子级,并操作HTML var s = ' hi there <span class= "changethis">\n&

有一个javascript字符串

var s = ' hi there \n <textarea> hello \n there </texarea> hi \n hi';

将所有内容放在div中,并将\n所需的标记放在span中。因此,第一个\n将是第一个子项,文本区域外的第二个\n将是最后一个子项

然后可以调用div的第一个子级和最后一个子级,并操作HTML

var s = ' hi there <span class= "changethis">\n</span> <textarea> hello \n there   </texarea> hi <span class= "changethis">\n</span> hi';
var s='hi there\n hello\n there hi\n hi';

对于单个文本区域,您可以使用
match
选择文本区域。然后,使用
replace
使用带有全局标志的正则表达式将所有换行符替换为

var s = s.replace(/\n/g, "<br//>");
//Replace all newline characters by "<br//>"

var textareaContent = s.match(/<textarea>[\s\S]+?<\/textarea>/i);
//Preparation: Selects a textarea

var newString = textareaContent[0].replace(/<br\/\/>/g, "\n");
//Preparation: replaces all "<br//>" inside the textarea by "\n" (newline feed)

s = s.replace(textareaContent[0], newString);
//Replaces the textarea inside the string by the new textarea (= including "\n")

var desiredResult = s.replace(/<br\/\/>/g, "<br/>");
//Replaces the remaining "<br//>" (the ones outside the textarea) by "<br/>"
var s=s.replace(/\n/g,”);
//将所有换行符替换为“”
var textareaContent=s.match(/[\s\s]+?/i);
//准备:选择一个文本区域
var newString=textareaContent[0]。替换(//g,“\n”);
//准备:将文本区域内的所有“”替换为“\n”(换行符提要)
s=s.replace(textareaContent[0],新闻字符串);
//将字符串中的textarea替换为新的textarea(=包括“\n”)
var desiredResult=s.replace(//g,“
”); //用“
”替换剩余的“”(文本区域之外的那些)
如果必须支持多个文本区域,则可以将
for
循环与正则表达式对象的
exec
方法结合使用。

可以使用此行

var text = text.replace(/\n/g, '<br/>');
var text=text.replace(/\n/g,
);

这将用文本中的标记替换所有\n字符。

必须阅读:是什么创建了HTML?也许改变这一点比事后处理一开始就被破坏的东西更容易…@Gaby aka G.Petrioli我已经看到了,我认为我的东西是不同的。建议/链接只是在你的代码处理的数据既友好又简单的情况下才是不相关的。对于任何操作用户提供的数据的代码来说,这是不够的。jQuery的DOM功能在这里最相关,而不是regex。如何匹配文本区域的内容?
/[\s\s]+?
匹配所有空白字符<代码>\S(大写)匹配所有非白色字符。因此,[\S\S]匹配所有字符(包括换行符,不同于
[\S\S]+?
的意思是:“匹配足够的字符,以便可以匹配RE的下一部分”。如果您不使用问号,“,”将被
[\s\s]+
包含。那么可能是打字错误?这两个
\s
在我看来都是小写的。我不需要替换或更改textarea内的内容,但在我之外仔细阅读代码。首先,所有
\n
字符都将替换为临时
字符。然后,文本区域内的
字符将恢复为
\n
字符。最后,其他
字符将替换为

字符。结果:除文本区域内的字符外,所有
\n
字符均替换为

var text = text.replace(/\n/g, '<br/>');