gpt4 book ai didi

javascript - 如何检查字符串匹配数组的一部分

转载 作者:搜寻专家 更新时间:2023-11-01 04:59:59 24 4
gpt4 key购买 nike

我有一个这样的数组

var invalidChars = ["^", "_", "[", "]"];

var inputText = "abc^" - true
var inputText = "abc_" - true
var inputText = "abc" - false

谁能告诉我如何使用 jQuery/Javascript 检查我的输入字符串是否包含数组中的任何项目?

我尝试了 $.InArray 和 indexof 。它不工作,因为那些检查整个字符串。

最佳答案

您可以使用 some() indexOf()

some() executes the callback function once for each element present in the array until it finds one where callback returns a true value. If such an element is found, some() immediately returns true. Otherwise, some() returns false. callback is invoked only for indexes of the array which have assigned values; it is not invoked for indexes which have been deleted or which have never been assigned values. ( Taken from here )

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;
})
)

对于旧浏览器检查 polyfill option for method some() .


您也可以使用正则表达式来获得结果。使用数组生成正则表达式并检查字符串中的匹配项。

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)
)

请引用这个字符串到正则表达式转换的答案:Converting user input string to regular expression

关于javascript - 如何检查字符串匹配数组的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37292687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com