首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript正则匹配[[引号][/quote]]

JavaScript正则匹配[[引号][/quote]]
EN

Stack Overflow用户
提问于 2014-11-07 18:12:32
回答 2查看 56关注 0票数 0
代码语言:javascript
复制
var quote = 'some text here [[quote=bob]This is some text bob wrote[/quote]] other text here';

我在试着让[[quote=bob]This is some text bob wrote[/quote]]

我用的是:match(/[[quote=(.*?)](.*?)[/quote]]/)[1]

但它给了我some text here [[quote=bob]This is some text bob wrote[/quot

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-07 18:19:49

试试这个:

代码语言:javascript
复制
var quote = 'some text here [[quote=bob]This is some text bob wrote[/quote]] other text here';

console.log( quote.match(/(\[\[quote=(.*?)\](.*?)\[\/quote\]\])/) );
// [1] => "[[quote=bob]This is some text bob wrote[/quote]]"
// [2] => "bob"
// [3] => "This is some text bob wrote"
票数 3
EN

Stack Overflow用户

发布于 2014-11-07 18:20:53

这里的问题是,[是正则表达式中的保留字符,因此您必须将它转义为“正则”字符。

下面是您的一个开始,这将与您的变量引号中的quote=bob匹配。

quote.match(/\[quote=[a-z]*\]/)

这是完整、正确和安全的版本。

代码语言:javascript
复制
string.match(/\[quote=[a-z]*\]([^\[]*)\[\/quote\]/)

它将返回适当的字符串,包括周围的引号标记作为第一个结果,而只返回内部字符串作为第二个结果。

我还使用了a字符类,因为您不希望在=字符之后匹配任何内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26807458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档