Javascript搜索变得简单

Javascript搜索变得简单,javascript,arrays,Javascript,Arrays,见下面Katana314的答案 在花了几天时间研究如何使用正则表达式进行BBcode翻译后,我决定重新发明轮子,现在就是我 我写了一个脚本来搜索BBcode标记,比如[b][/b]或文本中的任何其他[] 我正在寻找一个简单的解决方案来比较我在文本中找到的标记,并将它们与表“array”匹配(如果愿意)。我想这样做,因为最终我将使用数据库来插入和删除BBCODE 我有点喜欢我做替换的方式,因为它很容易填充。而且不需要正则表达式 用数组替换函数: function bbToHtml(s) {

见下面Katana314的答案

在花了几天时间研究如何使用正则表达式进行BBcode翻译后,我决定重新发明轮子,现在就是我

我写了一个脚本来搜索BBcode标记,比如[b][/b]或文本中的任何其他[]

我正在寻找一个简单的解决方案来比较我在文本中找到的标记,并将它们与表“array”匹配(如果愿意)。我想这样做,因为最终我将使用数据库来插入和删除BBCODE

我有点喜欢我做替换的方式,因为它很容易填充。而且不需要正则表达式

用数组替换函数:

 function bbToHtml(s) {
        var p, pairs = [
                 { "in": "[b]", "out": '<span style="color:red;">' },
                 { "in": "[/b]", "out": '</span>' },
              ];
        for (p in pairs) {
            s = s.replace(pairs[p]["in"], pairs[p]["out"]);
        }
        return s;
    }
函数bbToHtml(s){
变量p,成对=[
{“in”:“[b]”,“out”:“},
{“in”:“[/b]”,“out”:“},
];
for(p成对){
s=s.replace(成对[p][“in”]、成对[p][“out”]);
}
返回s;
}
这很简单。我想做的是将我的BBcode与“in”值进行比较

假设我有var
BBCode=“[we]”

如何继续查看它是否与我的数组值之一匹配


如果结果是真的,那么我可以只做
bbToHtml(BBCode)如果没有,我将跳过它或抛出一个错误。

您问题的可能解决方案:

 var pairs = [
             { "in": "[b]", "out": '<span style="color:red;">' },
             { "in": "[/b]", "out": '</span>' },
          ];

 function bbToHtml(s) 
 {
    for (var p in pairs) {
        s = s.replace(pairs[p]["in"], pairs[p]["out"]);
    }
    return s;
}
var search = '[we]';

if (pairs[search]) bbToHtml(search);
var对=[
{“in”:“[b]”,“out”:“},
{“in”:“[/b]”,“out”:“},
];
函数bbToHtml(s)
{
for(成对的var p){
s=s.replace(成对[p][“in”]、成对[p][“out”]);
}
返回s;
}
var search='[we]';
if(pairs[search])bbToHtml(search);

我喜欢ES5数组函数

function isBB(str) {
  return !pairs.every(function(s) {
    return s.in !== str;
  });
}
every
表示“如果此函数为此数组的所有值返回true,则返回true”。这是假设您只查找
“[b]”
,而不是
“[b]”
或任何细微变化