Javascript 如何使用regex解析BBCode?
我使用这个库()来解析JavaScript中的一些代码 我正在向库中添加一个[quote]标记,但我的正则表达式无法处理代码。当我试穿它的时候,它确实和我的文字相符 这是我的课文Javascript 如何使用regex解析BBCode?,javascript,regex,Javascript,Regex,我使用这个库()来解析JavaScript中的一些代码 我正在向库中添加一个[quote]标记,但我的正则表达式无法处理代码。当我试穿它的时候,它确实和我的文字相符 这是我的课文 [quote:16629e5e6b=\"newUser\"]It's coming down to a marketing challenge[/quote:16629e5e6b] 这是我的正则表达式 '\\[quote[\:0-9a-zA-Z=\\"]*\\](.+)\\[/quote[\:0-9a-zA-Z]*
[quote:16629e5e6b=\"newUser\"]It's coming down to a marketing challenge[/quote:16629e5e6b]
这是我的正则表达式
'\\[quote[\:0-9a-zA-Z=\\"]*\\](.+)\\[/quote[\:0-9a-zA-Z]*\\]': '<div class="quote">$1</div>'
“\\[quote[\:0-9a-zA-Z=\\\”]*\\](.+)\\[/quote[\:0-9a-zA-Z]*\\]:“$1”
下面是JS代码的代码
let bbCode = new BbCodeParser({
'\\[br\\]': '<br>',
'\\[b\\](.+)\\[/b\\]': '<strong>$1</strong>',
'\\[i\\](.+)\\[/i\\]': '<em>$1</em>',
'\\[u\\](.+)\\[/u\\]': '<u>$1</u>',
'\\[u[\:a-zA-Z0-9]*?\\](.+)\\[/u[\:a-zA-Z0-9]*?\\]': '<u>$1</u>',
'\\[h1\\](.+)\\[/h1\\]': '<h1><a href="$1" name="$1">$1</a></h1>',
'\\[h2\\](.+)\\[/h2\\]': '<h2><a href="$1" name="$1">$1</a></h2>',
'\\[h3\\](.+)\\[/h3\\]': '<h3><a href="$1" name="$1">$1</a></h3>',
'\\[h4\\](.+)\\[/h4\\]': '<h4><a href="$1" name="$1">$1</a></h4>',
'\\[h5\\](.+)\\[/h5\\]': '<h5><a href="$1" name="$1">$1</a></h5>',
'\\[h6\\](.+)\\[/h6\\]': '<h6><a href="$1" name="$1">$1</a></h6>',
'\\[p\\](.+)\\[/p\\]': '<p>$1</p>',
'\\[color=(.+)\\](.+)\\[/color\\]': '<span style="color:$1">$2</span>',
'\\[size=([0-9]+)\\](.+)\\[/size\\]': '<span style="font-size:$1px">$2</span>',
'\\[img\\](.+)\\[/img\\]': '<img src="$1">',
'\\[img=(.+)\\]': '<img src="$1">',
'\\[email\\](.+)\\[/email\\]': '<a href="mailto:$1">$1</a>',
'\\[email=(.+)\\](.+)\\[/email\\]': '<a href="mailto:$1">$2</a>',
'\\[url\\](.+)\\[/url\\]': '<a href="$1">$1</a>',
'\\[url=(.+)\\|onclick\\](.+)\[/url\]': '<a onclick="$1">$2</a>',
'\\[url=(.+)\starget=(.+)\\](.+)\[/url\]': '<a href="$1" target="$2">$3</a>',
'\\[url=(.+)\\](.+)\\[/url\\]': '<a href="$1">$2</a>',
'\\[a=(.+)\\](.+)\\[/a\\]': '<a href="$1" name="$1">$2</a>',
'\\[list\\](.+)\\[/list\\]': '<ul>$1</ul>',
'\\[\*\\](.+)\\[/\\*\\]': '<li>$1</li>',
'\\[quote\\](.+)\\[/quote\\]': '<blockquote>$1</blockquote>',
'\\[quote[\:0-9a-zA-Z=\\"]*\\](.+)\\[/quote[\:0-9a-zA-Z]*\\]': '<blockquote>$1</blockquote>',
'\\[google\\](.+)\\[/google\\]': '<a href="https://www.google.com/search?q=$1" target="_blank">$1</a>'
});
让bbCode=newbbcodeparser({
“\\[br\]”:“
”,
“\\[b\\](.+)\[/b\\]”:“$1”,
“\\[i\\](.+)\[/i\\]”:“$1”,
“\\[u\\]”(.+)\[/u\\]”:“$1”,
“\\[u[\:a-zA-Z0-9]*?\]”(.+)\[/u[\:a-zA-Z0-9]*?\]”:“$1”,
“\\[h1\\](.+)\[/h1\\]:”,
“\\[h2\\](.+)\[/h2\\]:”,
“\\[h3\\](.+)\[/h3\\]:”,
“\\[h4\\](.+)\[/h4\\]:”,
“\\[h5\\](.+)\[/h5\\]:”,
“\\[h6\\](.+)\[/h6\\]:”,
“\\[p\\](.+)\[/p\\]”:“$1”,
“\\[color=(.+)\\](.+)\\[/color\\]”:“$2”,
“\\[size=([0-9]+)\]”(.+)\\[/size\\]”:“$2”,
“\\[img\\](.+)\[/img\\]:”,
“\\[img=(.+)\\]”:“”,
“\\[email\\](.+)\[/email\\]”:“,
“\\[电子邮件=(.+)\\](.+)\\[/email\\]]:”,
“\\[url\\](.+)\[/url\\]:”,
“\\[url=(.+)\\\\\\\;onclick\\](.+)\[/url\]”:”,
“\\[url=(.+)\\](.+)\\[/url\\]]:”,
“\\[a=(.+)\\](.+)\\[/a\\]]:”,
“\\[list\\](.+)\[/list\\]”:“$1
”,
“\\[\*\\](.+)\[/\\*\\]”:“$1 ”,
“\\[quote\\]”(.+)\[/quote\\]':“$1”,
“\\[quote[\:0-9a-zA-Z=\\\”]*\\](.+)\\[/quote[\:0-9a-zA-Z]*\]]:“$1”,
“\\[google\\](.+)\[/google\\]”:“
});
感谢您的帮助参考的库文档建议使用
bbCodeParser.create({…})
提供自定义BBCodes,但是您的示例没有使用。create(…)
。虽然我对图书馆不熟悉,但我很好奇你有没有试过?您当前的代码在console中是否有任何错误?你能不能把调用.parse(…)
函数的方式/位置的一小段代码包含进去?@TylerRoper我正在更新这个库,默认情况下会包含一些其他自定义bbcode。我没有得到任何错误,它只是不符合我的标签。我添加了另外两个标记,它们工作得很好,只是引号我无法匹配。我相信这可能就是你要找的正则表达式:\[quote[\:0-9a-zA-Z=\\“]*\](.+)\[\/quote[\:0-9a-zA-Z]*\]
。对于JavaScript,我可以想象它看起来是这样的:\[quote[\\:0-9a-zA-Z=\\\\\\\\\]*](.)
@TylerRoper感谢您对正则表达式的帮助。成功了。