被判断的字符串是由逗号和中文拼接成的字符串,
编写一个js来校验一个字符串是否包含“纪委书记”,“纪检专岗”,“纪律检查室主任”,判断是否包含这三个字符串中的一个,包含其中一个就为true,多字少字都不算包含,如 纪检专岗人员 不算包含在内,
使用正则表达式来判断一个由逗号和中文组成的字符串是否精确包含 “纪委书记”,“纪检专岗”,“纪律检查室主任” 中的一个词,而且要求这个词是一个完整的词,不能被其他字符包含。
// 定义关键词列表
const keywords = ['纪委书记', '纪检专岗', '纪律检查室主任'];// 构建正则表达式,使用非捕获组和 alternation 来组合关键词
// \b 是单词边界断言,确保关键词作为一个完整的词出现
const regex = new RegExp(keywords.map(kw => `\\b${kw}\\b`).join('|'));// 被判断的字符串
const testString = '党委书记,纪委书记,工会主席';// 检查字符串是否包含关键词列表中的任何一个词
const containsKeyword = regex.test(testString);// 输出结果
console.log(containsKeyword); // 如果包含任何一个关键词,结果为 true,否则为 false
在这个代码片段中,我们首先定义了一个包含所有关键词的数组 keywords。然后我们使用 map 函数遍历这个数组,为每个关键词构建一个正则表达式的模式,其中 \b 表示单词边界,确保关键词作为一个独立的词出现。使用 join(‘|’) 方法将所有关键词的正则表达式模式组合在一起,形成一个大的正则表达式,其中 | 符号表示 alternation(或),意味着可以匹配任何一个关键词。
最后,我们使用 test 方法来检测 testString 是否包含关键词列表中的任何一个词。如果至少匹配一个词,containsKeyword 变量将为 true,否则为 false。