Javascript 如何检查字符串与数组的部分匹配
我有一个这样的数组Javascript 如何检查字符串与数组的部分匹配,javascript,jquery,Javascript,Jquery,我有一个这样的数组 var invalidChars = ["^", "_", "[", "]"]; var inputText = "abc^" - true var inputText = "abc_" - true var inputText = "abc" - false 有人能告诉我如何使用jQuery/Javascript检查我的输入字符串是否包含数组中的任何项吗 我尝试了$.InArray和indexof。它不能像检查整个字符串那样工作。您可以使用和 some()
var invalidChars = ["^", "_", "[", "]"];
var inputText = "abc^" - true
var inputText = "abc_" - true
var inputText = "abc" - false
有人能告诉我如何使用jQuery/Javascript检查我的输入字符串是否包含数组中的任何项吗
我尝试了$.InArray和indexof。它不能像检查整个字符串那样工作。您可以使用和
some()对数组中的每个元素执行一次回调函数,直到找到回调返回真值的元素为止。如果找到这样的元素,some()立即返回true。否则,some()返回false。仅对具有赋值的数组的索引调用回调;对于已删除或从未赋值的索引,不会调用它。(摘自)
var invalidChars=[“^”、“”、“[”、“]”;
var inputText=“abc^”;
var inputText1=“abc_”;
var inputText2=“abc”;
console.log(
无效字符。某些(函数(v){
返回inputText.indexOf(v)!=-1;
}),
无效字符。某些(函数(v){
返回inputExt1.indexOf(v)!=-1;
}),
无效字符。某些(函数(v){
返回inputExt2.indexOf(v)!=-1;
})
)
自从您询问jquery之后:
var contains, inputText;
var invalidChars = ["^", "_", "[", "]"];
inputText = "abc^" // true
contains = $(invalidChars).filter(inputText.split('')).length > 0; // true
inputText = "abc_" // true
contains = $(invalidChars).filter(inputText.split('')).length > 0; // true
inputText = "abc" // false
contains = $(invalidChars).filter(inputText.split('')).length > 0; // false
使用正则表达式模式和
RegExp.test
方法的简单解决方案:
var re = /[\^\[\]_]/;
console.log(re.test("abc^")); // true
console.log(re.test("abc_")); // true
console.log(re.test("abc")); // false