javascript - JS正则表达式匹配中文的问题
黄舟
黄舟 2017-04-10 14:31:18
[JavaScript讨论组]
<!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编码的

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(6)
PHPz

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

高洛峰

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

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

或者

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

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

PHP中文网

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

天蓬老师

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号