如何获取匹配变量的数组元素?

时间:2016-02-20 23:20:01

标签: javascript jquery arrays filter

我有一个这样的数组:

<?php
$action=$_REQUEST['action'];
if ($action=="")    /* display the contact form */
{
?>
  <form  action="" method="POST" enctype="multipart/form-data">
  <input type="hidden" name="action" value="submit">
  *Name:<br>
  <input name="name" type="text" value="" size="30"/><br><br>
  *Email:<br>
  <input name="email" type="text" value="" size="30"/><br><br>
  *Message:<br>
  <textarea name="message" rows="7" cols="30"></textarea><br>
  <input type="submit" value="Send email"/>
  </form>
<?php
}
else                /* send the submitted data */
{
?>
  <script type="text/javascript">
  function requiredFields() {
      alert("Please fill in all fields!");
  }
<?php
    $name=$_REQUEST['name'];
    $email=$_REQUEST['email'];
    $message=$_REQUEST['message'];
    if (($name=="")||($email=="")||($message==""))
    {
        echo "requiredFields();";
    }
    else
    {
        $from="From: $name<$email>\r\nReturn-path: $email";
        $subject="Message sent using your contact form";
        mail("email@email.com", $subject, $message, $from);
        echo "alert('Email sent!')";
    }
?>
</script>
<?php
}
?>

现在我需要根据这个变量创建一个新数组:

var numbers = ["one", "two", "three", "four", "five", "six", "seven"];

EX1:

var search;

我想要这个:

var search = 'f';

EX2:

var matches = ['four','five'];

我想要这个:

var search = 'fi';

EX3:

var matches = ['five'];

我想要这个:

var search = 'fig';

我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以使用filter

numbers.filter(function(x){ if(x.indexOf(search) >= 0) return x })

JSFiddle

答案 1 :(得分:2)

你可以使用这样的概念:

var numbers = ["one", "two", "three", "four", "five", "six", "seven"];

var matches = [];

var search = 'f';
var sl=search.length;

for(i=0;i<numbers.length;i++){

  if(numbers[i].substring(0,sl)===search){

       matches.push(numbers[i]);
    }

}