admin管理员组

文章数量:1292995

Is there any way to do this filtering out only items in an array that start with the letter a. ie

var fruit = 'apple, orange, apricot'.split(',');
  fruit = $.grep(fruit, function(item, index) {
  return item.indexOf('^a'); 
  });
alert(fruit);

Is there any way to do this filtering out only items in an array that start with the letter a. ie

var fruit = 'apple, orange, apricot'.split(',');
  fruit = $.grep(fruit, function(item, index) {
  return item.indexOf('^a'); 
  });
alert(fruit);
Share Improve this question asked May 13, 2015 at 9:36 user2678132user2678132 1151 silver badge4 bronze badges 1
  • Try this in jQuery: var $beginswitha = $(":input[name^='a']"). Then place that variable in your indexOf statement. – Callum. Commented May 13, 2015 at 9:41
Add a ment  | 

3 Answers 3

Reset to default 4

Three things:

  • You want to split by ', ', not ','
  • indexOf doesn't take a regex, but a string, so your code searches for a literal ^. Use search if you want to use regular expressions.
  • indexOf (and search) do return the index where they find the sought-after term. You'll have to pare that to your expectation: == 0. Alternatively, you can use the regex test method which returns a boolean.

alert('apple, orange, apricot'.split(', ').filter(function(item, index) {
    return item.indexOf('a') == 0; 
}));
alert('apple, orange, apricot'.split(', ').filter(function(item, index) {
    return /^a/.test(item); 
}));

You have to trim the spaces from the item before checking.

Regex to check if start with: ^a

var fruit = 'apple, orange, apricot'.split(',');
fruit = $.grep(fruit, function (item, index) {
    return item.trim().match(/^a/);
});
alert(fruit);

Other solution:

var fruits = [];
$.each(fruit, function (i, v) {
    if (v.match(/^a/)) {
        fruits.push(v);
    }
});
alert(fruits);

You can use charAt like so :

var fruit = 'apple, orange, apricot'.split(', ');
  fruit = $.grep(fruit, function(item, index) {
  return item.charAt(0) === 'a';
});
alert(fruit);

本文标签: jqueryHow can I find all the elements in javaScript array that start with certain letterStack Overflow