Javascript 正则表达式 UTF-8

Javascript RegEx UTF-8

我知道 JavaScript 的 RegEx 只支持 ASCII 字符串上的 \b 字边界 class。但是我能做些什么来让它与 UTF-8 字符一起工作吗?

我已经在 Whosebug 上阅读了几篇关于它的帖子,并尝试了一些方法,例如here

但我还是无法让它工作。

我有一个页面,询问用户的姓名。

在文本框中键入后,将显示回复,使用文本框中的部分值来问候用户,并忽略其他部分。

如果用户键入 "My name is John",回复将是 "Hello, john! Nice to meet you!"。

这在英语中运行良好,但该页面将使用几种不同的语言,使用 é á ó ã ñ 等字符...当这些字符不属于名称时,我如何让它忽略这些字符?

这就是我正在使用的:

function myFunction() {
    var text;
    var answer = document.getElementById("myInput").value.toLowerCase();
 answer = answer.replace(/[^a-z0-9çéã\s]/g, "");
 answer = answer.replace(/\b(my|name|is|)\b/g, '').trim();

    switch(answer) {
        case "":
            text = "Please type something.";
        break;
        default:
        text = "Hello, " + answer + "! Nice to meet you!";
    }
    document.getElementById("reply").innerHTML = text;
}
<p>What is your name?</p>

<input id="myInput" type="text">

<button onclick="myFunction()">Go</button>

<p id="reply"></p>

我试过了.replace(/á|é|ó|\b(my|name|is)\b/g, '') 但是当它们是 words/names 的一部分而不是当它们被用作单个单词时(这就是我想要的),这会删​​除这些字符。

按照 link 上的示例,我也尝试了:

answer = answer.replace(/(^|[ \n\r\t.,'"+!?-]+)(é|á|ó|ñ|õ|hello|my|name|is)([ \n\r\t.,'"\+!?-]+|$)/g, '').trim();

但它仍然没有按预期工作...

我该如何解决这个问题?

再次声明:不知道这是否是您要找的答案。这也将重新调整名称的第一个字母。所以如果我写 "My name is Salvador Dalí" 答案是:"Hello, Salvador Dalí! Nice to meet you!"

var myInput = document.getElementById("myInput");

function myFunction() {
  var text,
    answer = myInput.value.toLowerCase();
  answer = answer.replace("my name is ", "");

  switch (answer) {
    case "":
      text = "Please type something.";
      break;
    default:
      text = "Hello, " + CapitalizeName(answer) + "! Nice to meet you!";
  }
  document.getElementById("reply").innerHTML = text;
}

function CapitalizeName(name) {
  let _array = name.split(" ");
  let n_array = [];
  _array.map(w => {
    w = w.charAt(0).toUpperCase() + w.slice(1);
    n_array.push(w);
  });
  return n_array.join(" ");
}
<p>What is your name?</p>

<input id="myInput" type="text">

<button onclick="myFunction()">Go</button>

<p id="reply"></p>