Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查字符串与数组的部分匹配_Javascript_Jquery - Fatal编程技术网

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