当前位置: 首页 > 知识库问答 >
问题:

在JavaScript中生成不区分重音的RegExp[重复]

邵星光
2023-03-14

我对JavaScript中的RegExp有点担心。我想制作一个对重音不敏感的RegExp。

例如,如果我这样做:

var str = 'césar'; 

var i = New Regexp (str, 'desired parameter, similar to <i> for example').exec('cesar'); 

console.log(i) // césar or cesar should print

这样的东西存在吗?

共有1个答案

徐卓
2023-03-14

您没有可以传递的RegExp参数来改变重音的处理方式。您需要做的是建立一个应该相互替换的字符矩阵,然后从这些替换字符构建一个RegExp模式。

const e = ['È', 'É', 'Ê', 'Ë', 'è', 'é', 'ê', 'ë'],
    a = ['à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ']

const substitutions = {
  e, E: e, a, A: a
}

var str = 'Cesar';
const pattern = Array.from(str).map(c => substitutions[c] ? `[${c}${substitutions[c].join("")}]`: c).join("")
console.log(pattern)

var i = new RegExp(pattern, "gi").exec('césar');
console.log(i)
 类似资料:
  • 问题内容: 请考虑一个数组,例如: 是否有一个软件包可以进行分区以获得: 我可以看到如何通过for循环执行此操作,但如果存在的话,将不胜感激。 问题答案: 如果使用Underscore.js,则可以使用和实现

  • 我正在寻找一种性能良好的方法来支持不区分大小写、不区分重音的搜索。到目前为止,我们使用MSSql server在这方面没有问题,在Oracle上我们必须使用OracleText,现在我们在PostgreSQL上需要它。 我找到了这篇关于它的帖子,但我们需要将它与不区分大小写结合起来。我们还需要使用索引,否则性能可能会受到影响。有没有关于大型数据库的最佳方法的实际经验?

  • 问题内容: 如何将两个正则表达式模式构造为一个? 例如,我有一个长模式,一个小模式,我需要在长模式前面放一个小模式。 这行不通。当我连接字符串时,所有的斜杠都消失了。 问题答案: 您必须使用: 当我连接字符串时,所有的斜杠都消失了。 如果您的模式中有反斜杠以转义特殊的正则表达式字符(如),则必须在字符串中使用两个反斜杠(因为是字符串中的转义字符):与相同。 因此,您的模式必须变为:

  • 在MicrosoftSQLServer中,可以指定重音不敏感排序规则(对于数据库、表或列),这意味着可以使用以下查询 查找具有Joao名称的行。 我知道可以使用uncent\u string contrib函数从PostgreSQL中的字符串中去除重音,但我想知道PostgreSQL是否支持这些“不区分重音”的排序规则,以便上面的选择可以工作。

  • 当我尝试运行“ php artisan key:generate ” 时,我在提示中收到以下错误错误屏幕截图实际上我正在不同的笔记本电脑上运行一个 laravel 项目。我在生成密钥时遇到此问题。我该如何解决?

  • 我想自动为我的存储创建一个新变量。 它的工作原理应该是: 如果var_count是例如4,它应该生成一个名为var4的变量。