如何检查数字是否在字符串内?

How to check if a number is inside a string?

是否可以有一串数字,比方说这个操作生成的

var s = "1";
onEvent("start", "click", function() {
  for (var i = 2; i < 51; i++){ 
    s = s+", "+i;
      if(i==50){
        setText("text", s);
      }
  }
});

因此使 s 等于数字字符串“1、2、3 等”。现在假设有一个不同的函数试图检查 s(字符串)中是否有特定数字,

if(n == "number in s" ){
     *function*
 }

现在我们如何才能在字符串中找到一个单数并将其与另一个变量进行比较? "number in s" 是与变量 'n' 进行比较的数字。现在 'n' 可以更改值,但如果 "number in s" 包含 'n'

的所有选项,函数应该 运行

您可以使用 String.prototype.includes()。这将是实现这一目标的最简单方法。

includes() 方法确定一个字符串是否可以在另一个字符串中找到,并根据需要返回 true 或 false。

在您的示例中,您可以使用 -

if(s.includes(n)) { ... }

这是一种更准确的方法。

if(s.split(',').indexOf(n) != -1) {...}

如果你有一个像 '1,2,13' 这样的字符串,那么 str.includes(3) 会给出 true,这是错误的。

因此,首先我们将它用','分割,以获取数组中的所有数字,并使用 indexOf 方法搜索特定数字是否存在于其中。

function IsNumberInsideString(s) {
    for (var i=0; i<s.length; i++) {
        if (!isNaN(parseInt(s[i]))) {
            console.log("Number is inside string");
            return ;
        }
    }
    console.log("Number is not present inside the string");
}

你也可以使用[String.prototype.indexOf()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes)

indexOf() 方法 returns 可以在数组中找到给定元素的第一个索引,如果不存在则为 -1。

  myString.indexOf(number) === -1 ? //number not found : //number found ;