我有以下虚线标记,如果$("#AddInfo")
不为空,我想替换它们之间的所有内容。如果$("#AddInfo")
为空,那么我想删除标记之间的所有内容。它是第一次添加一些内容,但第二次调用该函数,例如如果$("#AddInfo")
有新内容或为空,那么标记之间没有任何变化?
var msg = "some stuff --- --- more stuff";
if ($("#AddInfo").val())
msg = msg.replace(/---[^]---/, "---\n" + $("#AddInfo").val() + "\n---");
else
msg = msg.replace(/---[^]---/, "--- ---");
}
答案 0 :(得分:1)
(这应该是评论,但你不能在' em中使用代码,所以...)
你之后是否会这样?
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 );
}
&#13;
<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>
&#13;
答案 1 :(得分:0)
您忘了添加量词:
/---[^]*?---/g
^^
<强>详情
---
- 3 -
个字符[^]*?
- 尽可能少的0个字符,直到第一个... ---
- 3 -
个字符。