我如何检查字符串是否包含数组的元素

How could i check if a string contains an element of an array

本文关键字:包含 是否 数组 元素 字符串 何检查 检查      更新时间:2023-09-26

我有一个textarea,我需要检查这个textarea.value是否包含字符串数组中的字符串。文本区域中的每一个 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');
    }
}

在消息包含子字符串时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>

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 个元素的警报。