Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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_Regex - Fatal编程技术网

JavaScript正则表达式格式字符串

JavaScript正则表达式格式字符串,javascript,html,regex,Javascript,Html,Regex,我很难实现我想要实现的目标,这可能只是睡眠剥夺,但更有可能的是,regex不是我的强项,我只是不能完全理解它,但希望有人能帮我一把 我有以下字符串: <span class="comment"><!--Some string\nsome other string\nsome more string--></span> 我需要格式化它,使其看起来像这样: <span class="comment"><!--Some string</

我很难实现我想要实现的目标,这可能只是睡眠剥夺,但更有可能的是,regex不是我的强项,我只是不能完全理解它,但希望有人能帮我一把

我有以下字符串:

<span class="comment"><!--Some string\nsome other string\nsome more string--></span>

我需要格式化它,使其看起来像这样:

<span class="comment"><!--Some string</span>\n<span class="comment">some other string</span>\n<span class="comment">some more string--></span>
/</span>\n<span class="comment">/gi
&lt;<span class="tag">string1\nstring2</span>&gt;<span class="comment"><!--string\nanother random string--></span>

现在,如果这是唯一的字符串,这将非常容易,因为我可以这样做:

<span class="comment"><!--Some string</span>\n<span class="comment">some other string</span>\n<span class="comment">some more string--></span>
/</span>\n<span class="comment">/gi
&lt;<span class="tag">string1\nstring2</span>&gt;<span class="comment"><!--string\nanother random string--></span>
/\n/gi
但是,只有当相应的open
具有类“comment”时,才应进行格式化。另一个问题是,带有类comment的open span标记不一定是字符串的第一个单词,它前面可能有一个字符串,并且span内可能有无限多个\n…例如。另一个变体可能如下所示:

<span class="comment"><!--Some string</span>\n<span class="comment">some other string</span>\n<span class="comment">some more string--></span>
/</span>\n<span class="comment">/gi
&lt;<span class="tag">string1\nstring2</span>&gt;<span class="comment"><!--string\nanother random string--></span>
string1\n字符串2
不应在带有类标记的范围内进行格式化,但应在带有类注释的范围内进行格式化

这对我来说是相当具有挑战性的,我得到的最接近的信息如下:

正则表达式:

/<span class="comment">([^\<\/]*)\n/gi
/([^\给你

 str.replace (/<span\s+class="comment">.*<\/span>/ig, function (m) {
     return m.replace (/\n/g, '</span>\n<span class="comment">');
   });
str.replace(/.*/ig,函数(m){
返回m.replace(/\n/g,“\n”);
});

提取span及其内容,然后替换该部分中的所有
\n

你只是想用
替换
\n
?你不需要正则表达式。@Mathletics,看起来他想要
\n
,但除了这个细节,你似乎是对的!@sircodesalot我认为这不适用;这实际上是错误的将标记细分为字符串,而不是解析HTML。我只是完全被OP认为regex是什么/做什么弄糊涂了。你说“我更喜欢使用regex”是什么意思?正则表达式不做文本转换;它只是一种匹配模式的方法。你仍然需要使用JavaScript(或某种语言)为了处理替换,事实上,根据您描述的场景,您根本不需要使用regex进行匹配。谢谢,我成功地在我的项目中实现了您的解决方案,感谢您花时间提供帮助,考虑到这个问题很难解释!