正则表达式换行符字符错误

时间:2012-10-09 02:56:58

标签: multiline

我试图让我的正则表达式跨多行工作,“m”似乎也没有用。因此,我的正则表达式适用于以下行的第1行和noT。

1 个答案:

答案 0 :(得分:2)

您可以跳过match部分,只需一步即可完成所有操作:

> "the  *text* is to be replaced \n by *text*".replace(/\*([\s\S]*?)\*/g, '<i>$1</i>');
"the  <i>text</i> is to be replaced \n by <i>text</i>"
  • .匹配任何字符,但不包括换行符。 [\s\S]匹配任何字符,包括换行符。

  • 我将您的搜索正则表达式更改为\*([\s\S]*?)\*,这非常贪婪地匹配星号之间的内容。

  • 替换字符串为<i>$1</i>$1将替换为第一个捕获组的内容,即您的文本。

此外,因为看起来您正在尝试将Markdown转换为HTML,请尝试使用预制的JS转换器:http://www.showdown.im/


你可以像这样使用它:

var str = "the  *text* is to be *replaced \n by* *text*";

alert(str.replace(/\*([\s\S]*?)\*/g, '<i>$1</i>'));