在数组中,获取以特定字符

时间:2015-07-12 05:08:40

标签: javascript jquery

我试图从我的数组中获取一个字符串,以'c'开头。 使用以下jQuery-Snippet,我能够检查是否存在带有'c'的字符串:

数组(类)包含:[“aLabel”,“c2”]

c2也可以是c1,c3,c4,c5 ......

        var classes = $(this).parent().attr('class').split(' ');
        var found = $.inArray('c2', classes) > -1;
        console.log(classes);
        console.log(found);

我需要整个班级c1,c2,......

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

这样做的一种方法就是遍历数组,测试每个元素是否匹配:

function getStringBeginningWith(arr, firstChar) {
  for (var i = 0; i < arr.length; i++) {
    if (arr[i].charAt(0) === firstChar) {
      return arr[i];
    }
  }
  return ""; // return whatever default value applies if no elements match
}

// then, elsewhere in your code:
var classes = $(this).parent().attr('class').split(' ');
var className = getStringBeginningWith(classes, "c");
if (className != "") {
  // matching class found, so do something
}

你在评论中说过,只会有一个匹配的类,但是如果有多个函数我写完就会返回第一个。

答案 1 :(得分:1)

因为您使用的是jQuery,所以您也可以这样做:

var arr = [ "aghtrt", "acrt", "c2", "cwe4", "mklp", "c1", "hello", "world" ],
    matches = new Array();

matches = $.grep(arr, function( n, i ) {
    return (n.search(/^c/i) > -1) ? true : false;
});

$("p").text(matches.join(", "));

小提琴:http://jsfiddle.net/bc51b4wo/

答案 2 :(得分:0)

您只需要,不需要将字符串拆分为数组

/\bc/ig.test('a c')