
码猴
<!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编码的
阅读 34.2k
2014-07-21 提问
7 个回答

泡泡
var result = (new RegExp("^[\\u4e00-\\u9fa5]$")).test("所");
console.log(result);
nightire
跟 vim 没关系,本来结果就是 false正则表达式 中文匹配,在 console 里打印一下 new RegExp("/^[\u4e00-\u9fa5]$/") 就知道了。
2014-07-21
飞龙

var result = (new RegExp("^[\\u4e00-\\u9fa5]$")).test("所");
或者
var result = /^[\u4e00-\u9fa5]$/.test("所");
2014-07-21
fishenal
js里 // 是正则表达式字面量,new RegExp创建后面参数带的是正则的string,题主把概念弄混了
2014-07-21

qingwa
/[\u4E00-\u9FA5\uF900-\uFA2D]/.test(value);
其实里面很多不好使用!!试试这个
Naida
我也刚好遇到这个问题了
/[\u4E00-\u9FA5\uF900-\uFA2D]/.test(value);也不ok呢
chic

找了一圈只匹配中文的正则都不对呢?最后我还是这么来判断了:
'要校验的字符串'.replace(/[\u4e00-\u9fa5]/g,'').length == 0
2017-07-28
登录后参加交流、获取后续升级提醒
立即登录免费注册

广告位促销正则表达式 中文匹配,月曝光三千万,10 元/天
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-141750-1.html
期待
对美国不要抱任何幻想
当然来鬼城的难民是限制条件的