gpt4 book ai didi

javascript - 正则表达式与特殊字符匹配

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

我有一个 string.match 条件一直有效,直到我意识到有些单词“personal(computer)”具有特殊字符,例如单词中的括号。例如,我的代码正在抓取要与“个人(计算机)”进行比较的术语,并搜索数据以查找该术语的任何实例,但是使用

string1.match(stringtarget,"ig"); //returns null 

我是正则表达式的新手,所以我怎样才能解决这个问题以使其也适用于特殊字符。

最佳答案

如果不需要正则表达式的特性,可以使用indexOf:

if (string1.toLowerCase().indexOf(stringtarget.toLowerCase()) >= 0) {
// It's in there
}

否则(我猜你正在使用 match 是有原因的!),你将不得不预处理 stringtarget 以转义任何特殊字符.

例如,这是我在最近的一个项目中使用的函数,它的灵感来自于类似的 PHP 函数:

if (!RegExp.escape) {
(function() {
// This is drawn from http://phpjs.org/functions/preg_quote:491
RegExp.escape = RegExp_escape;
function RegExp_escape(str) {
return String(str).replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!<>\|\:])/g, '\\$1');
}
})();
}

所以:

var match = string1.match(RegExp.escape(stringtarget),"ig");

关于javascript - 正则表达式与特殊字符匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5155910/

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