Reg Expression - 循环遍历数组并在jquery中查找列表中的第一个字母

时间:2011-03-23 09:16:05

标签: jquery regex

我正在循环遍历一个数组,我正在检查keydown(用户按下的键)是否与数组中的单词匹配 - 如果匹配,它会警告匹配的列表..像这样:

        $.each(keywords, function(i) {
            var rSearchTerm = new RegExp('\\b' + searchTerm + '\\b','i');
            if (keywords[i].match(rSearchTerm)) {
              keywordIndex = i;
              alert(keywords[i]);
            }
        });

这样可以正常工作,但是会检查整个单词。如何在正则表达式中检查每个列表中的第一个字母呢?

1 个答案:

答案 0 :(得分:3)

如果searchTerm是一个字母且keywords是一个字符串数组

$.each(keywords, function(i) {
    var rSearchTerm = new RegExp('\\b' + searchTerm + '\\w*\\b','i');
    if (keywords[i].match(rSearchTerm)) {
        keywordIndex = i;
        alert(keywords[i]);
    }
});

\wcharacter class shorthand。正则表达式匹配单词边界,后跟searchTerm字母,后跟无(单个字母)或更多(单词开头)单词字符。最后一个单词边界(\b)可以省略。


如果searchTerm是一个字母且keywords字数组

$.each(keywords, function(i) {
    if (keywords[i].substring(0, 1) == searchTerm) {
        keywordIndex = i;
        alert(keywords[i]);
    }
});

BTW:您可以(并且应该?)在return false;之后添加alert();语句以打破循环(如果您只需要找到第一次出现)。