0

我正在尝试使用 javascript 验证字符串是否在数组中。我四处搜索并找到了下面的代码(它也有我的一些改动)。我对其进行了设置,以便在成功和失败时发出警报。成功后,之后每次运行,都卡在成功上,直到页面刷新。如果失败,同样的事情也会发生。什么可以让它每次运行时都重新开始?

function urlVerify(a, b) {
    for (var j=0; j<a.length; j++) {
        if (a[j].match (b)) {
            ...
            alert('found');
            return j;
        }
    } 
    ...
    alert('notfound');
    return -1;
}

包含数组并调用函数的代码如下:

$(document).ready(function() {

    var urlPlain = window.location.hash.replace(/[#/]+/g, "");

    var pageIndex = [
        'home',
        'contact'
    ]       

    urlVerify(pageIndex, urlPlain);

});

正常的网站网址如下所示:www.example.com/#/home

然后 urlPlain 变量将其简化为:home

4

1 回答 1

1

要删除直到“#/”的所有内容,您需要:

var lastBit = url.replace(/.*#\//, '')

以上将返回最后一个“#/”之后的所有内容。但是,如果您只想要最后一点,为什么要包含哈希?

要查看单词是否在数组中,根据字符串,您可以使用:

var hasLastBit = wordArray.join().match(lastBit);

或更准确的版本:

var re = new RegExp('(^|\s)' + lastBit + '(\s|$)');
var hasLastBit = re.test(wordArray.join(' '));
于 2012-03-30T01:54:08.050 回答