我有这样的数组
var invalidChars = ["^", "_", "[", "]"];
var inputText = "abc^" - true
var inputText = "abc_" - true
var inputText = "abc" - false
Run Code Online (Sandbox Code Playgroud)
任何人都可以让我知道如何使用jQuery/Javascript检查我的输入字符串是否包含数组中的任何项目?
我尝试了$ .InArray和indexof.它不起作用检查整个字符串.
some()为数组中的每个元素执行一次回调函数,直到找到一个回调返回true值的元素.如果找到这样的元素,some()会立即返回true.否则,some()返回false.仅为已分配值的数组的索引调用回调; 对于已删除的索引或从未分配过值的索引,不会调用它.(摘自这里)
var invalidChars = ["^", "_", "[", "]"];
var inputText = "abc^";
var inputText1 = "abc_";
var inputText2 = "abc";
console.log(
invalidChars.some(function(v) {
return inputText.indexOf(v) != -1;
}),
invalidChars.some(function(v) {
return inputText1.indexOf(v) != -1;
}),
invalidChars.some(function(v) {
return inputText2.indexOf(v) != -1;
})
)Run Code Online (Sandbox Code Playgroud)
您也可以使用正则表达式来实现结果.使用数组生成正则表达式并检查字符串中的匹配项.
var invalidChars = ["^", "_", "[", "]"];
var inputText = "abc^";
var inputText1 = "abc_";
var inputText2 = "abc";
var regex = new RegExp(invalidChars.map(function(v) {
return v.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&');
}).join('|'));
console.log(
regex.test(inputText),
regex.test(inputText1),
regex.test(inputText2)
)Run Code Online (Sandbox Code Playgroud)
请参阅此答案以获取字符串到正则表达式转换:将用户输入字符串转换为正则表达式
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |