在JS中使用分隔符

时间:2011-11-03 17:24:42

标签: javascript

我正在编写一个使用“;”的程序作为分隔符并在搜索内容时提取到该点为止的URL。

所以它的格式为:

name;surname

在搜索给定的数组时......我决定加倍努力,测试没有“;”的数组。但这使程序感到困惑 - 它不知道“;”这个位置已经在工作中抛出了扳手!

到目前为止,这是我的代码 - 非常感谢提前!

pages = 
        [
        "The first", "An;alternative;page", "Yet another page"
        ]

    u_c_pages = 
        [
        "www.cam.ac.uk;"+pages[0]
        ,
        "www.warwick.ac.uk"+pages[1]
        ,
        "www.kcl.ac.uk;"+pages[1]
        , 
        "www;"+pages[2]
        ]

    var pattern5 = prompt('5) Please enter a search term:'); 

    function url1_m1(u_c_pages,pattern)
    {

        var seperator = []; 
        var seperatorPos = [];

        if(pattern) 
        {
            for (var i = 0; i < u_c_pages.length; i++) 
                {

                    var found = true;
                    if((u_c_pages[i].indexOf(";"))<0)
                        {
                        found=false;
                        }
                    else
                        {
                        seperator[seperator.length] = i;
                        seperatorPos[seperatorPos.length] = (u_c_pages[i].indexOf("|"));
                        }
                } 
                if(seperator.length==0)
                        {
                        return("Nothing found!");
                        }
                else
                var found2 = "";
                {
                for (var j = 0; j < seperator.length; j++) 
                        {
                        if(u_c_pages[j].substring(seperatorPos[j],u_c_pages[j].length-1).toLowerCase().indexOf(pattern.toLowerCase()) >= 0)
                            {
                            found2 = (u_c_pages[j].substring(0,seperatorPos[j]));
                            break;
                            }
                        }
                return(found2)
                }
        }
        else 
        {
        // only returned when the user decides to type in nothing
            return("Nothing entered!");
        } 
    }
    alert(url1_m1(u_c_pages,pattern5));

2 个答案:

答案 0 :(得分:1)

您可以使用String.split(“;”)将字符串拆分为段。参数是分隔符。

答案 1 :(得分:1)

享受正则表达式的力量:

on JSFiddle

pages = ["The first", "An;alternative;page", "Yet another page"];

u_c_pages = [
  "www.lboro.ac.uk;"+pages[0],
  "www.xyz.ac.uk;"+pages[1],
  "www.xyz.ac.uk;"+pages[1], 
  "www;"+pages[2]
];

var pattern5 = prompt('5) Please enter a search term:');

function url1_m1(u_c_pages,pattern)
{
  // escape search pattern
  pattern = pattern.toLowerCase().replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&')
  pattern = new RegExp('^([^;]+);.*?' + pattern, 'i');

  var result = null;

  for(var i=0;i<u_c_pages.length;i++) {
    if((result = u_c_pages[i].match(pattern))) {
      return result[1];
    }
  }

  return false;
}
alert(url1_m1(u_c_pages,pattern5));