如何检查字符串是否包含符号列表

How do I check if string contains a list of signs?

本文关键字:是否 包含 符号 列表 字符串 何检查 检查      更新时间:2023-09-26

我有一个歌曲列表:

var sings = [",",".",":","!","?"]

如何检查一个单词是否包含这些符号之一并返回它?

例如:

"But,"
return ","
"Finished."
return "."
"Questions?"
return "?"

你可以用正则表达式来解决这个问题:

function match(input) {
  var regex = /([,'.':!'?])/;
  var matches = input.match(regex);
  return matches ? matches[0] : false;
}
console.log(match("foo?"));   // "?"
console.log(match("bar."));   // "."
console.log(match("foobar")); // false

函数示例

var checkSigns = function(str) {
    var signs = [",",".",":","!","?"];
    for (var i = 0; i < signs.length; i++) {
        if (str.indexOf[signs[i]] !== -1) {
            return signs[i];
        }
    }
};

您可以使用filter()indexOf()并返回在string中找到的符号数组。

var signs = [",",".",":","!","?"];
function check(str, arr) {
  return arr.filter(function(e) {
    return str.indexOf(e) != -1
  })
}
console.log(check("But,", signs))
console.log(check("Finished.", signs))

尝试此原型str.hasSign();,如果包含则返回sign,如果不包含则返回false

String.prototype.hasSigns = function() {
  var signs = [",", ".", ":", "!", "?"];
  for (var i = 0; i < signs.length; i++) {
    if (this.indexOf(signs[i]) > -1) return signs[i];
  }
  return false;
}
console.log("football, basketball".hasSigns());
console.log("1-3".hasSigns());
console.log("Good!".hasSigns());