sách gpt4 ai đã đi

JavaScript 检查字符串是否包含正则表达式中的任何单词

In lại 作者:塔克拉玛干 更新时间:2023-11-02 21:52:37 25 4
mua khóa gpt4 Nike

我正在尝试检查一个字符串是否包含以下任何单词:

AB|AG|AS|Ltd|KB|University

我当前的代码:

var acceptedwords = '/AB|AG|AS|Ltd|KB|University/g'
var str = 'Hello AB';

var matchAccepted = str.match(acceptedwords);
console.log(matchAccepted);

if (matchAccepted !== null) { // Contains the accepted word
console.log("Contains accepted word: " + str);

} khác {
console.log("Does not contain accepted word: " + str);

}

但由于某些奇怪的原因,这不匹配。

知道我做错了什么吗?

1 Câu trả lời

这不是定义文字 regular expression in Javascript 的正确方法.

改变

var acceptedwords = '/AB|AG|AS|Ltd|KB|University/g'

đến

var acceptedwords = /AB|AG|AS|Ltd|KB|University/;

您可能会注意到我删除了 g 标志:它没有用,因为您只想知道是否有一个匹配项,您不想得到所有匹配项。你甚至不必在这里使用 match,你可以使用 Bài kiểm tra :

var str = 'Hello AB';
if (/AB|AG|AS|Ltd|KB|University/.test(str)) { // Contains the accepted word
console.log("Contains accepted word: " + str);
} khác {
console.log("Does not contain accepted word: " + str);
}

如果你想用字符串构建一个正则表达式,假设它们都不包含任何特殊字符,你可以这样做

var words = ['AB','AG', ...
var regex = new RegExp(words.join('|'));

如果您的名字可能包含特殊字符,您将不得不使用 function to escape them .

如果你不想让你的单词成为其他单词的一部分(意味着你不想匹配“ABC”)那么你应该检查单词边界:

regex = new RegExp(words.map(function(w){ return '\\b'+w+'\\b' }).join('|'),'g');

关于JavaScript 检查字符串是否包含正则表达式中的任何单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24156618/

25 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com