之前的博文中: 有正则表达式的、i、g,本文再测试了空格数字和量词的匹配。
这篇只测试匹配,不替换或其他处理。
s空格:测试实际写空格也能识别,但是不利于看出空了几个空格,可以用s代表空格。
d数字:匹配数字
+代表至少一个:一个或多个(不能是零个)
*代表零个或多个:一个没有,或一个或多个(有多少个都行)
?代表零个或一个:零个后一个,不能是多个(不能是多个)
测试代码:
<a href="javascript:prn_p1()">点击获取</a><br> <script language="javascript" type="text/javascript"> var LODOP; //声明为全局变量 function prn_p1(){ var str1="Operation not supported on selectedprinter,selected printer,selected printer,Selected Printer";//一个空格,无空格,两个空格,首字母大写 //都是全局匹配 //s代表空格 console.log(str1.match(/selectedprinter/g));//无空格 console.log(str1.match(/selected printer/g));//一个空格,表达式中用空格表示 console.log(str1.match(/selectedsprinter/g));//一个空格,表达式中用s表示i console.log(str1.match(/selectedsprinter/ig));//一个空格,用s表示,并忽略大小写 console.log(str1.match(/selectedssprinter/ig));//两个空格,表达式用ss两个表示 //带量词, //+代表至少一个:一个或多个 //*代表零个或多个:一个没有,或一个或多个 //?代表零个或一个:零个后一个,不能是多个 console.log("-------------后面的是带量词的:分割线------------------"); console.log(str1.match(/selecteds+printer/ig));//至少有一个空格,忽略大小写 console.log(str1.match(/selecteds*printer/ig));//零个或多个 console.log(str1.match(/selecteds?printer/ig));//零个或一个 //d代表数字,包裹代表单词 console.log("-----下面的是匹配的str2里的---str:clodop,clodop4,clodop40,clodop2345,--"); var str2="clodop,clodop4,clodop40,clodop2345,"; console.log(str2.match(/clodop/g));//带clodop组合的 console.log(str2.match(/clodop/g));//带clodop组合的单词包裹 console.log(str2.match(/clodopd/g));//带clodop加一个数字的组合 console.log(str2.match(/clodopd/g));//带clodop加一个数字的组合包裹 console.log("------下面是带量词的额 ,分割线-------"); console.log(str2.match(/clodopd+/g));//clodop带一个或多个数字的组合的 console.log(str2.match(/clodopd*/g));//clodop带零个或一个或多个的 //后面带多个数字组合也会截出一个或零个组合 console.log(str2.match(/clodopd?/g));//clodop带零个或一个的组合 console.log(str2.match(/clodopd?/g));//clodop带零个或一个的组合包裹 //都是全局匹配 }; </script>
因为里面测的比较多,所以选了两个在图示中解释。
图示: