gpt4 book ai didi

javascript - 我想使用 javascript regex 在句子中找到一个单词(包括特殊字符)匹配

转载 作者:行者123 更新时间:2023-11-29 16:02:35 25 4
gpt4 key购买 nike

我试过使用下面的代码。

var regex = new RegExp("\\b" + wordToMatch + "\\b", 'i'),
wordToMatch = '$10',
sentenseToSearch = "That book costs $10."
sentenseToSearch.match(regex);

如果 wordtoMatch = 'book' 或 'That' 或 'costs' 并且当 wordToMatch 为“$10”时匹配失败,它会起作用。撇号 (') 字符也有同样的问题。

例如:-

var regex = new RegExp("\\b" + wordToMatch + "\\b", 'i'),
wordToMatch = 'Edward',
sentenseToSearch = "He is Edward's father."
sentenseToSearch.match(regex);

上面的代码应该返回 null,因为句子中没有爱德华。但它匹配 Edward 的文本,不包括 的字符。

我的代码适用于所有单词,但包含特殊字符(如 $、'、- 等)的单词除外。谁能帮我提供正则表达式来匹配包含特殊字符的单词。

最佳答案

转义将被视为正则表达式中的文字字符串的用户输入(否则会被误认为是特殊字符)可以通过简单的替换来完成:

function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}

测试代码:

function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}

var wordToMatch = '$10';
var sentenseToSearch = "That book costs $10.";
var regex = new RegExp(escapeRegExp(wordToMatch), 'i');
alert(sentenseToSearch.match(regex));

关于javascript - 我想使用 javascript regex 在句子中找到一个单词(包括特殊字符)匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50503056/

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