使regex在content-JavaScript中找到带有换行符的标记内的文本

使regex在content-JavaScript中找到带有换行符的标记内的文本,javascript,regex,Javascript,Regex,谢谢你来这里,所以我有一个小代码: while(/\[del\](.*?)\[\/del\]/i.exec(text) != null) text = text.replace(/\[del\](.*?)\[\/del\]/i, "<s>$1</s>"); 但是当有断线时,它就不匹配了。 例如: [del]asdsadasdaasdadasdassadadsadsa[/del]-这将不匹配 我对正则表达式真的很陌生,那么我做错了什么呢?在许多正则表达式中,默认情况下,点

谢谢你来这里,所以我有一个小代码:

while(/\[del\](.*?)\[\/del\]/i.exec(text) != null)
text = text.replace(/\[del\](.*?)\[\/del\]/i, "<s>$1</s>");
但是当有断线时,它就不匹配了。 例如:

[del]asdsadasdaasdadasdassadadsadsa[/del]-这将不匹配


我对正则表达式真的很陌生,那么我做错了什么呢?

在许多正则表达式中,默认情况下,点与换行符不匹配。Javascript没有用于更改此行为的单线修饰符。匹配所有字符(包括换行符)的最新技巧是使用[\s\s]匹配所有空白字符和所有非空白字符

作为旁注,您不需要将replace方法放在while循环中,因为replace只会在找到某个对象时执行替换。如果要替换所有发生的事件,只需在模式末尾添加g命令

text = text.replace(/\[del\]([\s\S]*?)\[\/del\]/ig, "<s>$1</s>");

它避免了大量工作

默认情况下,在许多正则表达式中,点与换行符不匹配。Javascript没有用于更改此行为的单线修饰符。匹配所有字符(包括换行符)的最新技巧是使用[\s\s]匹配所有空白字符和所有非空白字符

作为旁注,您不需要将replace方法放在while循环中,因为replace只会在找到某个对象时执行替换。如果要替换所有发生的事件,只需在模式末尾添加g命令

text = text.replace(/\[del\]([\s\S]*?)\[\/del\]/ig, "<s>$1</s>");

它避免了大量工作

将点替换为[\s\s]。while语句是完全无用的,你可以删除它。如果没有while语句,它将不会替换其他匹配项。如果有更多离题的内容:看起来你正在用html替换bbcode[del]。注意还有一个html元素,不要混淆。哦,是的,我知道,这只是为了让代码变小,用[\s\s]替换点。while语句是完全无用的,你可以删除它。如果没有while语句,它将不会替换其他匹配项。如果有更多离题的内容:看起来你正在用html替换bbcode[del]。注意,还有一个html元素,不要混淆。哦,是的,我知道,这只是为了使代码更小谢谢你的提示,他们真的救了我的手指!谢谢@Jonny5 8B谢谢你的提示,他们真的救了我的手指!