繁体   English   中英

正则表达式替换短划线之间的一切,包括换行?

[英]Regex Replace Everything Between Dashes Including New lines?

我有以下虚线标记,如果$("#AddInfo")不为空,我想替换它们之间的所有内容。 如果$("#AddInfo")为空,那么我想删除标记之间的所有内容。 它在第一次添加内容时第一次起作用,但是在第二次调用函数时起作用,例如,如果$("#AddInfo")具有新内容或为空,则标记之间没有任何变化?

var msg = "some stuff --- ---  more stuff";

if ($("#AddInfo").val())
  msg = msg.replace(/---[^]---/, "---\n" + $("#AddInfo").val() + "\n---");
else
  msg = msg.replace(/---[^]---/, "--- ---");
}

(这可能是注释,但您不能在其中添加代码,所以...)

你在追求这样的东西吗?

 function onButton() { var msg = $("#AddInfo").val(), beginning = 'some stuff ---', end = '--- more stuff', re = new RegExp(beginning + '\\\\s*([^]*)\\\\s*' + end), content = re.exec($("#output").html())[1]; if( msg=='' ) { content = ''; } else { if( content == '' ) { content = '<br/>'; } msg += '<br/>'; } $('#output').html( beginning + content + msg + end ); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form> <input id="AddInfo"/> <button type="button" onclick="onButton()">Add</button> <br/> <span id="output">some stuff --- --- more stuff</span> </form> 

您忘记添加量词:

/---[^]*?---/g
       ^^

细节

  • --- - 3 -字符
  • [^]*? -尽可能少的0个字符,直到第一个...
  • --- - 3 -字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM