Javascript正则表达式UTF-8

Javascript正则表达式UTF-8,javascript,regex,utf-8,word-boundaries,Javascript,Regex,Utf 8,Word Boundaries,我知道JavaScript的正则表达式只支持ASCII字符串上的\b单词边界类。但是我能做些什么来让它使用UTF-8字符吗 我在stackoverflow上读过几篇关于它的文章,并尝试了一些类似于上面描述的方法 但我还是不能让它工作 我有一个页面,其中询问用户的姓名 在文本框中输入后,将显示一个回复,使用文本框中的部分值来问候用户,并忽略其中的一些其他部分 如果用户键入“我的名字是约翰”,回答将是“你好,约翰!很高兴认识你!” 这在英语中效果很好,但页面将在几种不同的语言上使用字符,如éáóãñ

我知道JavaScript的正则表达式只支持ASCII字符串上的\b单词边界类。但是我能做些什么来让它使用UTF-8字符吗

我在stackoverflow上读过几篇关于它的文章,并尝试了一些类似于上面描述的方法

但我还是不能让它工作

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

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

如果用户键入“我的名字是约翰”,回答将是“你好,约翰!很高兴认识你!”

这在英语中效果很好,但页面将在几种不同的语言上使用字符,如éáóãñ。。。当这些字符不是名称的一部分时,如何使其忽略

这就是我正在处理的问题:

函数myFunction(){
var文本;
var answer=document.getElementById(“myInput”).value.toLowerCase();
答案=答案。替换(/[^a-z0-9çã\s]/g,”);
答案=答案。替换(/\b(我的|名字|是|)\b/g',).trim();
开关(应答){
案例“”:
text=“请键入内容。”;
打破
违约:
text=“你好,”+回答+“!很高兴认识你!”;
}
document.getElementById(“reply”).innerHTML=text;
}
你叫什么名字


再说一遍:我不知道这是否是您正在寻找的答案。这也将调整名字的第一个字母的资本结构。所以,如果我写“我的名字是萨尔瓦多·达利”,答案是:“你好,萨尔瓦多·达利!很高兴认识你!”

var myInput=document.getElementById(“myInput”);
函数myFunction(){
变量文本,
answer=myInput.value.toLowerCase();
答案=答案。替换(“我的名字是“,”);
开关(应答){
案例“”:
text=“请键入内容。”;
打破
违约:
text=“你好,”+name(答案)+“!很高兴认识你!”;
}
document.getElementById(“reply”).innerHTML=text;
}
函数名(名称){
让_array=name.split(“”);
设n_数组=[];
_array.map(w=>{
w=w.charAt(0.toUpperCase()+w.slice(1);
n_阵列推送(w);
});
返回n_数组。join(“”);
}
你叫什么名字


这可能不是您期望的答案,但是:您是否打算在URL中使用该名称?(虽然有一种在URL中使用变音符号的方法)如果没有,我必须告诉你们,我不喜欢我的名字没有变音符号。然而,有一种方法可以验证小写字母的发音。我正在使用
[a-z\xC0-\xff]
[a-z\u00C0-\u017F]
我不打算在URL中使用该名称。至于你剩下的答复。。。我对这个很陌生,我还不太了解。为了使代码正常工作,我可以对代码进行哪些更改?您是否使用ECMAScript 2018兼容环境?您可以使用
/(?或者,模拟
\b
/(?旁注(因为您说的是“UTF-8字符”):JavaScript使用UTF-16,而不是UTF-8。两者都是整个Unicode字符集的字符编码。有时需要了解的是,
Sting
是一个UTF-16代码单元序列,一些Unicode字符需要多个UTF-16代码单元。这解决了我的问题!非常感谢您的帮助,伙计。