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);

});

通常のWebサイトのURLは次のようになります。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 に答える