正規表現を複数の行で機能させようとしていますが、「m」も機能していないようです。したがって、私の正規表現は最初の行で機能し、次の行では機能しません。
質問する
145 次
1 に答える
2
この部分をスキップmatch
して、すべてを 1 つのステップで実行できます。
> "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>'));
于 2012-10-09T03:03:11.970 に答える