我的正则表达式只需一行输入即可正常工作,但不要't有两个或两个以上.

My regex works fine with one line of input, but don't with two or more...

本文关键字:两个 工作 一行 正则表达式 输入 我的 常工作      更新时间:2023-09-26

我正在编写以下小代码:http://jsfiddle.net/5kXBk/
如果在第一个div中键入"foo$42-bar",则可以获得正确的文本颜色。但是,如果你添加一行并开始写作,文本将保持绿色。。。

我该如何解决这个问题
谢谢

您在RegExp中使用^$。这导致RegExp只匹配一个字符串:一个完全匹配模式的字符串。

请在fiddle中使用以下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>");
  1. ([^$]*)任何非美元符号
  2. ((?:''$''d+(*(任何"至少有一个数字的美元符号">
  3. (.*?)任意字符
  4. (?=<br|$)结束前(<br>$((contentEditable将换行转换为<br>s(

除了g(全局(标志外,您还尝试过使用m(多行(标志吗?

以下链接可能会有所帮助:http://www.w3schools.com/jsref/jsref_obj_regexp.asp

例如:/regexp/gm