日期:2014-05-18  浏览次数:20800 次

急急急、、。正则匹配 中文 Unicode
var sRegexTH = /^([\u4e00-\u9fa5])+$/; 
var sUnicodeTH = escape(sPageName).toLocaleLowerCase().replace(/%u/gi, '\\u');
 
 sRegexTH.test(sUnicodeTH) 这么匹配不对吗?为何总是返回false呢

------解决方案--------------------
正则没有什么问题,alert一下sUnicodeTH是什么

ps:
var sRegexTH = /^[\u4e00-\u9fa5]+$/; 

无需捕获组
------解决方案--------------------
var sRegexTH = /^[\u4e00-\u9fa5]+$/; //这是验证字符串全是中文


var sRegexTH = /[\u4e00-\u9fa5]+/g; //这是匹配字符串中的中文
------解决方案--------------------
你用replace(/%u/gi, '\\u')处理,说明你的sUnicodeTH 中十有八九是含有\u的,而你的正则sRegexTH是验证sUnicodeTH是否为全中文,按这个来说,返回false是对的,先看下你得到的sUnicodeTH 是否为全中文吧