正则表达式:主要用来匹配字符;工作原理,使用通配符匹配技术。
正则表达式:
1、var re=new RegExp("a","i") 实例化一个对象,a是一个正则的内容,具体的规则,i是一个标志
2、var re=/a/i a也是正则内容,i是规则。加上i的意思是不区分大小写。没有i,表示区分大小写。*表示匹配任意字符。如果之匹配星号,我们需要用到专一,用一个反斜杠来进行转义\*,这样就可以匹配*号了。只要是特殊符号,要进行匹配的话,都要进行转义,特殊符号有:!¥……*+=.\/()[]{};这些符号要进行匹配的话,都要进行转义。
3、特殊字符:o t n v f r xnn uxxxx cX这些特殊字符要匹配的话,也要进行转义一下。
这个是字符类,是代表的一类字符。
Unicode 空白符就是表示的空格。小写和大写都是非的关系。
创建正则表达式两种方式:
var re = new RegExp("a","i"); //a具体规则 i标志
var re = /a/i //匹配字符串中的"a" i不区分大小写
1.特殊符号 //匹配以下特殊字符需要用反斜杠转义
! $ ^ * + = | . ? \ / ( ) { } [ ]
2.特殊字符
o t n v f r xnn uxxxx cx
正则表达式对象的方法
exec() 执行正则表达式的匹配,返回一个数组
test() 测试正则表达式的匹配,返回布尔值
toSource() 返回RegExp对象的源代码
toString() 将RegExp对象转换成字符串
标志:
i 匹配时不区分大小写
g 匹配时执行全局匹配
m 匹配时执行多行匹配
重复类:{n} 匹配前一项n次;
{n,}匹配前一项至少一次,至多不限
{n,m}匹配前一项至少N次,最多M次
{?}匹配前一项0次或者1次
{+}匹配前一项至少1次
{*}匹配前一项0次或者多次
选择符: 分隔可以用来选择的文字
定位符: ^ :匹配字符串的结尾
$: 匹配一个单词的边界
\b: 匹配一个单词的边界
\B: 与\b相反,匹配一个非单词边界
\u4e00-\u9fa5 所有汉字
[^\x00-xff]意思为双字节 \x00-xff表示为单字节
unicode 汉字范围 \u4e00-\u9fa5
\w a-zA-Z0-9
匹配合法用户名
var re = /[\w\u4e00-\u9fa5]/g;
匹配非法用户名
var re = /[^\w\u4e00-\u9fa5]/g;
用户名要求:1.组成:数字,字母(不区分大小写),汉字,下划线。
3种交互行为验证:
1.获得焦点时,提示用户名命名规则。
2.输入用户名时,提示已填字符数量。
3.失去焦点时,判断是否为空、长度是否小于5或大于25、是否有非法字符,如都合法则提示OK。
x00-xff表示所有ASCII码中的单字符。如不在此范围则用2个字符代替(一个汉字代表2个字符的判断)。
计算输入字符的长度:
function getLength(str) {
return str.replace(/[^\x00-xff]/g,"xx").length;
}
var re_n=/[^\d]/g; //表示匹配全局非数字
var re_t=/[^a-zA-Z]/g; //表示匹配全局非字母
var re = /^[a-zA-Z]{1}[\w\.]{4,19}$/;/*只能输入5-20个字符,以“字母”开头*/;
本文出自 “学虽易学好难且学且珍惜” 博客,请务必保留此出处http://lhf20132175.blog.51cto.com/11029145/1891184
原文:http://lhf20132175.blog.51cto.com/11029145/1891184