谁能告诉我为什么这不适用于整数但适用于字符?我真的很讨厌 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)
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)