Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回内容部分与模式匹配的第一项的url_Javascript - Fatal编程技术网

Javascript 返回内容部分与模式匹配的第一项的url

Javascript 返回内容部分与模式匹配的第一项的url,javascript,Javascript,在内容部分与模式匹配的页面中,如何返回第一个页面的url部分(采用函数1的样式,不区分大小写),但如果找不到页面,如何返回空字符串 e、 g url1(页面“GREAT”)返回“www.xyz.ac.uk” url1(页面,“xyz”)返回“” 以下是我目前的代码: var pg = [ "|www.cam.ac.uk|Cambridge University offers degree programmes and world class research." , "!www.xyz.ac.u

在内容部分与模式匹配的页面中,如何返回第一个页面的url部分(采用函数1的样式,不区分大小写),但如果找不到页面,如何返回空字符串

e、 g

url1(页面“GREAT”)返回“www.xyz.ac.uk”

url1(页面,“xyz”)返回“”

以下是我目前的代码:

var pg = [ "|www.cam.ac.uk|Cambridge University offers degree programmes and world class research." , "!www.xyz.ac.uk!An great University" , "%www%Yet another University" ];
var pt = "great";

function url1(pages, pattern) {
    var result = "";
    for (x in pages) {
        current = pages[x].split(pattern);
        result = current[1];
    }
    return result;
}

alert(url1(pg, pt));
试试这个:

var pg = [ "|www.cam.ac.uk|Cambridge University offers degree programmes and world class research." , "!www.xyz.ac.uk!An great University" , "%www%Yet another University" ];

function find(pages, pattern) {
  var i, l, page, arr;
  pattern = pattern.toLowerCase();
  for(i=0, l=pages.length; i<l; i++) {
    page = pages[i];
    arr = page.split(page[0]);
    if(arr.slice(2).join(page[0]).toLowerCase().indexOf(pattern) >=0) {
      return arr[1];
    }
  }
  return '';
}

console.log(find(pg,'great')); // 'www.xyz.ac.uk'
console.log(find(pg,'xyz')); // ''
var pg=[“| www.cam.ac.uk |剑桥大学提供学位课程和世界一流的研究。”、“!www.xyz.ac.uk!一所伟大的大学”、“%www%又一所大学”];
函数查找(页面、模式){
变量i,l,第页,arr;
pattern=pattern.toLowerCase();
对于(i=0,l=pages.length;i=0){
返回arr[1];
}
}
返回“”;
}
console.log(查找(第页,'great');/'www.xyz.ac.uk'
console.log(查找(pg,'xyz'));/''

这里摆弄:

这里是另一个使用正则表达式的解决方案。我觉得这比在第一个字符上盲目拆分要好一点,因为内容也可以始终包含第一个字符

注意:已更正接受的答案。

function url1(pages, pattern) {
    var rx = /^(.)(.+?)\1(.+)/,
        i = 0,
        len = pages.length,
        matches;

    for (; i < len; i++) {
        if ((matches = pages[i].match(rx)) && matches[3].indexOf(pattern) !== -1) 
            return matches[2];
    }

    return '';
}

//www.xyz.ac.uk
url1(['!www.xyz.ac.uk!An great University! The best in the world!'], 'best');
函数url1(页面、模式){
变量rx=/^(.+?)\1(.+)/,
i=0,
len=页数。长度,
比赛;
对于(;i

如果需要不区分大小写的搜索,您可以始终将
模式和内容小写。

请务必查看我的答案。很简单,但可能会失败。请参阅我的答案。@plax谢谢您的提示,我已经修改了答案和fiddle,以考虑到内容也包含url和内容之间的分隔符的情况