正则表达式
正则字符串操作:
例1:search =>查找第一次出现的位置,没有返回-1
var atr = 'ab12';
alert(atr.search('b'));//输出1
例2:substring =>两个参数(起始位置到结束位置的前一位)
=>一个参数(起始位置一直取到整个字符串结束)
var str = 'abcdef';
alert(str.substring(1, 4)); //输出bcd
例3: charAt =>取字符串中的某个字符
var str = 'abcd';
alert(str.charAt(1));//输出b
例4: split =>分割字符串,获取数组
var str = 'a-bc-de-f';
alert(str.split('-')); //输出a,bc,de,f
例5:match => 匹配符合的字符串
var str = 'sd gg 23 s2 b';
var re = /\d+/g; //g表示全局查找,\d+表示多个数字
alert(str.match(re)); //输出23,2
例5:replace => 替换所有匹配
var str = 'sd gg 23 s2 b S1';
alert(str.replace(/s/gi, 'D'));//输出Dd gg 23 D2 b D1
字符类:
转义字符
[abc]
[0-9] ==> \d 数字
[^0-9] ==> \D 非数字
[a-z] ==> 所有字母
[0-9a-z] ==> 数字或者字母
[^a] ==> 除了a以外
[a-z0-9_] ==> \w
[^a-z0-9_] ==> \W
space ==> \s 空格, \S 除了空格以外
量词
{n, m} 最少n次,最多m次
{n, } 最少n次,最多不限
{ ,m} 最少不限,最多m次
{n} 正好n次
+ {1,} 最少出现一次最多出现无数次
* {0,} 任意次
? {0,1} 0次或者一次
匹配中文:[\u4e00-\u9fa5]
例如: 字符串匹配邮箱
yang@qq.com
dangci_yg_1998@126.com
var re=/^\w+@[a-z0-9]+\.[a-z]{2,4}$/g; //'^'代表行首字符串开头, $代表行尾, 加这两个代表整个都符合要求
oTxt2.value=oTxt1.value.match(re);
一串字母、数字、下划线 @ 一串英文、数字 . 一串英文(长度2-4)
\w+ @ [a-z0-9]+ \. [a-z]{2,4}
例:字符串行首行尾去空格
var str = ' ff s dd a ';
var re = /^\s+|\s+$/g; // 行首行尾去空格 var re = /\s+$/; 行尾去空格, var re=/^\s+/;行首去空格
alert(str.replace(re, ''))
例:
var str= '1b2 1dd 1c2 d';
var re= /1[abc]2/g;
alert(str.match(re)); //输出1b2, 1c2;
====》1[abc]2就如 1a2|1b2|1c2是一样的 ‘|’或者的意思, 如果[a,b]就是或者a或者逗号,或则b,
这个‘[]’里面指的是单个的,[123 456]就是1|2|3|空格|4|5|6,‘[]’里面出现的东西全都在或的范围之内
例:
var re = /<[^<>]+>/g; //标签<>里面除了<>以外任意字符
正则:
var str='abcdef';
var re=new RegExp('a', 'i'); //简写方式 var re=/a/i; =>这个i是忽略大小写
alert(re.test(str));//输出true