87,993
社区成员
发帖
与我相关
我的任务
分享
越搞越糊涂了,大家看我的几个例子,再回答一下吧,谢谢!var str = "abc_123中文_d3=efg汉字a";
var reg = /[\u4e00-\u9fa5]\B/g;
var arr = str.match(reg);
document.write(arr) //中,汉
var reg = /[\u4e00-\u9fa5]\b/g;
var arr = str.match(reg);
document.write(arr) //文,字
var reg = /.\b/g;
var arr = str.match(reg);
document.write(arr) //3,文,3,=,g,字,a
var reg = /.\B/g;
var arr = str.match(reg);
document.write(arr) //a,b,c,_,1,2,中,_,d,e,f,汉
可知:
所谓单词是以变量命名规则为基础的,字母、数字、下划线都是 单词 的成员
\b 表示 单词和非单词 的边界 /a\b/ 是不会匹配到 ab 的,因为 a 后面的 b 是单词
\B 依然
至于 /\B[\u4e00-\u9fa5]\B/g 匹配不到内容,那是因为没有符合条件的组合
g汉字a 两边都是单词
而 \b 就行var reg = /\b[\u4e00-\u9fa5]+\b/g;
var arr = str.match(reg);
document.write(arr) //中文,汉字