Javascript 朝鲜语和字母regex返回false

Javascript 朝鲜语和字母regex返回false,javascript,regex,forms,Javascript,Regex,Forms,我在验证网站的表单输入时遇到问题。我正在寻找接受英文字符和韩文字符的名称字段。我在输入韩语字符时没有遇到任何问题,但在我添加韩语正则表达式后,函数返回false,而没有返回true var recommend_coffee_your_name_field = $('#coffee_recommend_your_name_field'); recommend_coffee_your_name_field.keyup(function(e) { var $th = $(this); $th

我在验证网站的表单输入时遇到问题。我正在寻找接受英文字符和韩文字符的名称字段。我在输入韩语字符时没有遇到任何问题,但在我添加韩语正则表达式后,函数返回false,而没有返回true

var recommend_coffee_your_name_field = $('#coffee_recommend_your_name_field');

recommend_coffee_your_name_field.keyup(function(e) {
  var $th = $(this);
  $th.val( $th.val().replace(/[^a-zA-Z0-9\u{3130}-\u{318F}\u{AC00}-\u{D7AF}]/g, function(str) { 
    alert('You typed " ' + str + ' ".\n\nPlease use only letters and numbers.'); return ''; 
  } ) );

  if(e.keyCode !== 8 || e.keyCode !== 9 ) {             
    var recommend_coffee_your_name_field_length = recommend_coffee_your_name_field.val().length;
    //console.log("Your Name Field Length: " + your_name_field_length);

    if( recommend_coffee_your_name_field_length > 0 ){
      //recommend_coffee_your_name_field.removeClass("error").addClass("success");
      recommend_coffee_shop_your_name_value = true;
    }
    else{
      //recommend_coffee_your_name_field.removeClass("success").addClass("error");
      recommend_coffee_shop_your_name_value = false;
    }
    if (!recommend_coffee_shop_your_name_value) {
      alert("The name field is missing");
      e.preventDefault();
    } 
});

在您的情况下,从Unicode转义序列中删除大括号就足够了:

/[^a-zA-Z0-9\u3130-\u318F\uAC00-\uD7AF]/g
请注意,
\u{3130}
仅在与ECMAScript 6兼容的浏览器中可用,请参阅

调用
\uxxx
Unicode转义序列:

Unicode转义序列要求在
\u
之后至少有四个字符
示例:
\u00A9
=

\u{XXXXX}
称为Unicode码点转义:

ECMAScript 6中的新功能。使用Unicode码点转义,任何字符都可以使用十六进制数转义,这样就可以使用最高为
0x10FFFF
的Unicode码点。对于简单的Unicode转义,通常需要分别编写代理项的一半以实现相同的效果

示例:
\u{2F804}
//简单的Unicode转义也一样:
\uD87E\uDC04


是否需要在unicode值周围使用大括号?例如,我的印象是,\ u3130而不是\u{3130}@adanot似乎是对的:-。-'似乎adanot是对的。我刚试过,它似乎起作用了。我觉得这是正确的格式。谢谢Kaido提供的证据。我讨厌正则表达式,请不要讨厌正则表达式,它真的很有趣:)