如何检查字符串的一部分与数组匹配
How to check part of string matches array
我有一个类似的数组
var invalidChars = ["^", "_", "[", "]"];
var inputText = "abc^" - true
var inputText = "abc_" - true
var inputText = "abc" - false
有谁能告诉我如何使用jQuery/Javascript检查我的输入字符串是否包含数组中的任何项吗?
我尝试了$.InArray和indexof。它不能像检查整个字符串那样工作。
您可以使用some()
和indexOf()
some()为数组中的每个元素执行一次回调函数,直到找到回调返回真值的元素为止。如果找到这样的元素,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;
})
)
对于旧浏览器,请检查方法some()的polyfill选项。
您也可以使用regex来实现结果。使用数组生成正则表达式,并检查字符串中是否匹配。
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)
)
关于字符串到正则表达式的转换,请参阅以下答案:将用户输入字符串转换为正则表达式
使用正则表达式模式和RegExp.test
方法的简单解决方案:
var re = /['^'[']_]/;
console.log(re.test("abc^")); // true
console.log(re.test("abc_")); // true
console.log(re.test("abc")); // false
由于您询问了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
相关文章:
- 如何检查字符串的一部分与数组匹配
- Regex提取URL返回数组的一部分;未定义”;
- 如何在加号运算符之后选择数组元素的一部分
- 将 json 数组的一部分分别排序到同一数组的其他部分
- 如何在数组jQuery中查找字符串的一部分
- 如何在javascript数组中剥离字符串的一部分
- jQuery,从变量调用数组对象的一部分
- 在 jsrender 中选择数组的一部分
- 将数组变量传递给函数的下一部分
- Javascript - 查找用数组中的值替换字符串的一部分
- 在 Ember 中,如何设置一个特定的对象,该对象是控制器中数组的一部分
- 在数组元素的文本中找到字符串的一部分后替换字符串的一部分
- 在 Javascript 中提取大型多维数组的一部分
- 如何将 ID 数组与包含其 ID 作为属性名称一部分的对象属性进行匹配
- 如何使用jquery/javascript将字符串的一部分与数组值进行匹配
- Javascript-使用一个变量获取数组的一部分
- 获取数组中字符串的一部分
- 删除数组中每个字符串的一部分
- 将JSON数组的一部分与另一个JSON数组组合在一起
- 拆分字符串的最优化方法是在数组中更改字符串的一部分