匹配字符
匹配中文字符串
var reg = /^[\u4e00-\u9fa5]+$/;
匹配任意字符串
解释:因为\s为空格,\S为非空格,组合在一起就是任意字符串。
var reg = /[\s\S]*/;
匹配判断
第一种
var regex= /^[\u4e00-\u9fa5]+$/;
regex.test(字符串);
第二种
var str='String';
var regex= /[\s\S]*/;
var result=str.match(regex)
if(result==null||0==result.length){
console.log("no");
}else{
console.log("yes");
}
注意:
如果想用for或者forEach来循环判断字符串是否匹配,第二种方法是完全可以的,但是对于第一种的test方法有一些地方需要注意。
在下面这种情况中,会出现true,false交替的情况,达不到预期效果,可能会出现一个数组中有两个元素符合要求,但是只能检测出最前面的一个。
var rgex=/^\s"food_[0-9]":\s"[\s\S]+"$/g;
for(var j=0;j<n.length;j++){
if (regex.test(n[j])){
console.log("yes");
}
}
解决方法就是去掉全局匹配g,如下修改,就可以正确匹配了
var rgex=/^\s"food_[0-9]":\s"[\s\S]+"$/;//这样就可以了
for(var j=0;j<n.length;j++){
if (regex.test(n[j])){
console.log("yes");
}
}