我正在研究这个小代码:http://jsfiddle.net/5kXBk/
如果在第一个div中键入“foo $ 42 bar”,则会得到正确的文本颜色。但是如果你添加一个新行并开始写,那么文本仍然是绿色的......
我该如何解决这个问题? 谢谢!
答案 0 :(得分:2)
您在RegExp中使用^
和$
。这导致RegExp只匹配一个字符串:一个完全匹配模式的字符串。
使用以下RE代替小提琴:http://jsfiddle.net/5kXBk/7/
text = text.replace(/([^$]*)((?\$\d+)*)(.*?)(?=<br|$)/g, "<span class=\"blue\">$1</span><span class=\"red\">$2</span><span class=\"green\">$3</span>");
([^$]*)
任何非美元符号(.*?)
任何角色(?=<br|$)
结束前(<br>
或$
)(contentEditable
将换行符转换为<br>
s)答案 1 :(得分:0)
您是否尝试过使用除g(全局)标志之外的m(多行)标志?
以下是可能有用的链接:http://www.w3schools.com/jsref/jsref_obj_regexp.asp
例如:/ regexp / gm