js中正则表达式写法:
1. new RegExp("模式"[,"标记"]) ;
参数说明:
pattern(模式) :表示正则表达式的文本
flags(标记) 可选值:
g: 全定匹配
i: 忽略大小写
gi或ig: 匹配所有可能的值,也忽略大小写
例如 var pattern = new RegExp("^[0-9]*$","g");
2. var pattern = /^[A-Za-z0-9\u4e00-\u9fa5]+[_]*$/g ;
注意: 标记在该种方式的写法。
js中常用的正则表达式校验方法:
(1)test() 正则对象RegExp的方法,接收一个字符串参数。
在string中找到匹配regExp的字符串则返回true,没找到匹配的字符串则返回false
PS: 连续使用同一个整个表达式校验多个字符串,第二个返回false问题 。
解决方案:reg.lastIndex = 0 ;
使用方法:
正则表达式.test(待测字符串)
(2)match() match是字符串的一个方法,接收一个RegExp对象做为参数
当regExp没有全局标志时,返回一个数组,数组的第0号元素为刚匹配到的字符串,如果regExp有子表达式,则数组第1号元素为regExp的第一个子表达式,第2号元素为regExp的第二个子表达式...。
注意:该数组同时还有2个属性:input是输入的字符串string,index是当前匹配的字符串第一个字符在input中的位置。
当regExp有全局标志(g选项)时,返回所有匹配到的字符串组成的数组。该数组没有input属性,也没有index属性。数组中仅有匹配到的字符串。
使用方法:
待测字符串.match(正则表达式)
例如:
function CheckEnChNumUnLineReg(){
var str = "aaa1111中国_" ;
var pattern = /^[A-Za-z0-9\u4e00-\u9fa5]+[_]*$/;
var ret = pattern.test(str) ;
return ret ;
}