javascript正则表达式多行选择器代码
我在mac book air上使用最新版本的chrome浏览器和最新的操作系统。我正在尝试用javascript创建BBcode解析器。我可以很容易地解析一行代码,比如[b]a[/b],但是当它是多行代码时,它找不到它。我做了一些研究,发现javascript在多行(m)标记上存在一些问题。我尝试了一些替代解决方案,但似乎没有一个奏效。以下是我的一些尝试:javascript正则表达式多行选择器代码,javascript,regex,parsing,multiline,bbcode,Javascript,Regex,Parsing,Multiline,Bbcode,我在mac book air上使用最新版本的chrome浏览器和最新的操作系统。我正在尝试用javascript创建BBcode解析器。我可以很容易地解析一行代码,比如[b]a[/b],但是当它是多行代码时,它找不到它。我做了一些研究,发现javascript在多行(m)标记上存在一些问题。我尝试了一些替代解决方案,但似乎没有一个奏效。以下是我的一些尝试: var reg = new RegExp('\\[b\](.+)\\[\/b\]','igm'); var reg = new RegExp
var reg = new RegExp('\\[b\](.+)\\[\/b\]','igm');
var reg = new RegExp('\\[b\]([\s\S]+)\\[\/b\]','ig');
var reg = new RegExp('\\[b\]([^]+)\\[\/b\]','ig');
var reg = new RegExp('\\[b\]([\n|\r|.]+)\\[\/b\]','ig');
任何帮助都将不胜感激
谢谢这必须有效:
var reg = new RegExp('\\[b\\]([\\s\\S]+?)\\[/b\\]', 'ig');
或者更好:
var reg = new RegExp('\\[b]([\\s\\S]+?)\\[/b]', 'ig');
既然你不必逃避关闭方括号,我想问题是+太贪婪了。。他的JFIDLE示例在一行中显示多个b标记。否则,我同意这一点work@Denomales:否问题是您必须使用此语法在java中双重转义all!但你是对的,懒散的量词更好,因为你是对的。我试过了,如果有多个标签,它只会选择第一个开始的标签和最后一个结束的标签,忽略中间的所有内容,这对有多个标签的行更有效。我甚至没有注意到双转义斜杠+1或偶数
/\[b]([\s\s]+?)\[\/b]/ig
。我推荐/\[b]([^]+?)\[\/b]/ig
,但这在一些较旧的IE版本中不起作用。