Javascript IndexOf 字符串中的整数不起作用

Fab*_*Fab 5 javascript jquery

谁能告诉我为什么这不适用于整数但适用于字符?我真的很讨厌 reg 表达式,因为它们很神秘,但如果我也有的话。我还想在有效字符中包含“-()”。

String.prototype.Contains = function (str) {  
    return this.indexOf(str) != -1;
};

var validChars = '0123456789';               

var str = $("#textbox1").val().toString();
if (str.Contains(validChars)) {
    alert("found");
} else {
    alert("not found");
}
Run Code Online (Sandbox Code Playgroud)

MrC*_*ode 1

validChars您正在传递to的整个列表indexOf()。您需要循环遍历字符并一一检查它们。

演示

String.prototype.Contains = function (str) {  

  var mychar;
  for(var i=0; i<str.length; i++)
  {
    mychar = this.substr(i, 1);
    if(str.indexOf(mychar) == -1)
    {
        return false;
    }
  }

  return this.length > 0;
};
Run Code Online (Sandbox Code Playgroud)

要在整数上使用此功能,您可以使用 将整数转换为字符串String(),如下所示:

var myint = 33; // define integer
var strTest = String(myint); // convert to string
console.log(strTest.Contains("0123456789")); // validate against chars
Run Code Online (Sandbox Code Playgroud)