Maison  >  Questions et réponses  >  le corps du texte

javascript - JS正则表达式匹配中文的问题

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <script>
        var result = (new RegExp("/^[\u4e00-\u9fa5]$/")).test("所");
        console.log(result);
    </script>
</head>
<body>
</body>
</html>

为什么输出的是false?文件用vim :set fileencoding 确认是用UTF-8编码的

黄舟黄舟2749 Il y a quelques jours381

répondre à tous(6)je répondrai

  • PHPz

    PHPz2017-04-10 14:33:18

    var result = (new RegExp("^[\\u4e00-\\u9fa5]$")).test("所");
    console.log(result);

    répondre
    0
  • 高洛峰

    高洛峰2017-04-10 14:33:18

    跟 vim 没关系,本来结果就是 false,在 console 里打印一下 new RegExp("/^[\u4e00-\u9fa5]$/") 就知道了。

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:33:18

    var result = (new RegExp("^[\\u4e00-\\u9fa5]$")).test("所");
    

    或者

    var result = /^[\u4e00-\u9fa5]$/.test("所");
    

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-10 14:33:18

    js里 // 是正则表达式字面量,new RegExp创建后面参数带的是正则的string,题主把概念搞混了

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-10 14:33:18

    /[\u4E00-\u9FA5\uF900-\uFA2D]/.test(value);
    其实上面好多不好使用!!试试这个

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:33:18

    我也正好碰到这个问题了
    /[\u4E00-\u9FA5\uF900-\uFA2D]/.test(value);也不ok呢

    répondre
    0
  • Annulerrépondre