匹配的常规表达

时间:2018-04-02 08:13:46

标签: javascript regex string

我有这样的文字:

  

Habitación101

正如你所看到的那样,有一个带重音的字母:ó

我正在寻找一个常规的表达,当这个单词写成没有重音时,也就是“习惯”。

我正在使用JavaScript的new RegExp(keyword, 'u')

1 个答案:

答案 0 :(得分:1)

只需使用Habitaci[ó|o]n作为正则表达式。

const regex = new RegExp('Habitaci[ó|o]n', 'gi');

[ó|o]匹配列表ó|o中的单个字符。

这是一个演示:

const regex = new RegExp('Habitaci[ó|o]n', 'gi');
const str = `Habitación
Habitacion`;
let m;

while ((m = regex.exec(str)) !== null) {
  // This is necessary to avoid infinite loops with zero-width matches
  if (m.index === regex.lastIndex) {
    regex.lastIndex++;
  }

  // The result can be accessed through the `m`-variable.
  m.forEach((match, groupIndex) => {
    console.log(`Found match, group ${groupIndex}: ${match}`);
  });
}