我正在尝试创建一个同时可用于PHP和Javascript的bbcode过滤解决方案.现在,我正在使用javascript.我无法让新的RegExp构造函数识别json中的模式.这是重现此问题的一小部分示例代码.任何见解将不胜感激!
bbcode.json
{"bbcode_regex": [
{"regex": "<p>","bbcode": ""},{"regex": "<\/p>",}
global.js
function html2bbcode(html) {
var bbcode = html;
jQuery.get("bbcode.json",{},function(json) {
for(var i in json.bbcode_regex) {
bbcode = bbcode.replace(new RegExp(json.bbcode_regex[i].regex,"g"),json.bbcode_regex[i].bbcode)
console.log(new RegExp("/<p>/"));
}
},'json');
return bbcode;
}
请注意,我使用的是FireBug,console.log RegExp仅用于实验/调试目的.看来无论我将什么作为新RegExp的第一个参数,它都只会记录一个空对象,例如{}.我现在不用担心PHP,只需要关注javascript.谢谢!
最佳答案
线
return bbcode;
将返回undefined,它将在ajax请求完成后初始化.使用回调:
function html2bbcode(html,callback) {
var bbcode = html;
jQuery.get("bbcode.json",function (json) {
for (var i in json.bbcode_regex) {
bbcode = bbcode.replace(new RegExp(json.bbcode_regex[i].regex,json.bbcode_regex[i].bbcode);
}
callback(bbcode);
},'json');
return false;
}