我需要检查字符串是否包含指定的单词/句子(javascript)以外的其他内容,如果:
- 包含一个字母,除了这个短语:
ANOTHER CMD
- 它包含其他指定的多个数字序列,例如:
["8809 8805", "8806 8807"]
(数字是例子,我应该能够测试字符串的任何数组的数字)
谢谢!
可以替换所有不在数组中的
const arr = ["ANOTHER CMD","8809 8805", "8809 8805"]
const okContent = str => {
arr.forEach(entry => str = str.replaceAll(entry,""))
return str.trim()==="";
};
console.log(okContent('Has other stuff than ANOTHER CMD and 8809 8805'))
console.log(okContent('8809 8805 ANOTHER CMD 8809 8805'))
我不知道这样做是否正确,但这对我来说很有效:
- 将所有有效单词替换为空白(使用
replace
) - 检查字符串是否为空
- 如果它是空的,这意味着字符串不包含任何不需要的字符串(检查空间,你可以使用
trim
方法)
你可以试试regex!
使用字符串数组作为'|'分隔的正则表达式值
并检查给定行中的指定字符串。
const regex = /(ANOTHER CMD|8809 8805|8806 8807)/i
console.log(!regex.test('Should not contain word ANOTHER CMD'))
console.log(regex.test('Should contain word ANOTHER CMD'))