我怎么能检查字符串是否包含数组元素

时间:2016-01-31 11:41:28

标签: javascript

我有一个textarea,我需要检查这个textarea.value是否包含字符串数组中的字符串。 textarea中的每个onkeyup都称之为脚本。 我试过这个代码,但出了点问题。 “@”没关系,但“苹果”和“橙色”不是。请帮我!谢谢!

var str = document.getElementById("messageArea").value;

var arr = ["@", "apple", "orange"];

for (var i = arr.length - 1; i >= 0; --i) {
    if (str.indexOf(arr[i]) != -1) {
      alert('contains');
   } else {
        alert('not contains');
    }
}

2 个答案:

答案 0 :(得分:1)

当消息包含子字符串时,

Break循环。



$("#messageArea").on("keyup",function(e){
var str = document.getElementById("messageArea").value;

var arr = ["@", "apple", "orange"];

for (var i = arr.length - 1; i >= 0; --i) {
    if (str.indexOf(arr[i]) != -1) {
      $('#messageBtn').prop('disabled',false);
break;
   } else {
        $('#messageBtn').prop('disabled',true);
    }
}
  });

<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <textarea type="text" id="messageArea"></textarea>
  <button disabled id="messageBtn">submit</button>

</body>
</html>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

var str = "@ apple orange"; //document.getElementById("messageArea").value;

var arr = ["@", "apple", "orange"];


str = str.trim();

var parts = str.split(" "); // split textarea string by space into another array

for (var part in  parts) { // iterate one every part and check it with your arr variable
  if ( arr.indexOf(parts[part]) != -1 ) {
    alert("found: " + parts[part] );
  } else {
    alert("not contains " + parts[part]);
  }
}

您将收到str变量中所有3个元素的警报。