javascript_core_05之正则表达式
1、 检索关键词:
①检索固定关键词的位置:
var i=str.indexOf(“关键词”,fromi);在str中查找fromi位置后,下一个关键词的下标位置;省略fromi,从0开始;
var i=str.lastIndexOf(“关键词”,fromi);在str中查找fromi位置前,上一个关键词的下标位置;省略fromi从末尾开始;
②判断是否包含符合规则的关键词:
var i=str.search(/正则表达式/);找到返回下标,未找到返回-1;
2、正则表达式:
最简单的正则表达式就是关键词原文;
字符集:【字符列表】①一位字母:【A-Za-z】;②一位数字:【0-9】或者\d;③一位汉字:【\u4e00-\u9fa5】;④除了XX:【^XX】;⑤一位数字,字母,下划线:\w ó【0-9A-Za-z_】;⑥一位空字符,空格,换行,Tab:\s;⑦一位任意字符:.;
3、正则量词:
①{m,n}:至少m个,最多n个;②{m,}:m个以上;③{m}:必须m个;④?:0或1个;⑤*:0个或以上不限;⑥+:1个或以上不限;
4、正则选择,分组:
①选择:规则1|规则2;②分组:(规则1)|(规则2);
5、正则表达式示例:
手机号:(\+86|0086)?\s*1【34578】\d{9};
密码强度:①至少包含一位大写字母:(?!【a-z0-9】+$);②至少包含一位数字:(?!【A-Za-z】+$);③6~8位字母数字组合:【0-9A-Za-z】{6,8};
6、正则位置匹配:
①^:匹配字符串开头;②$:匹配字符串结尾;③\b:匹配单词边界;
7、检索操作关键词:
①查找一个固定关键词的位置:
var i=str.indexOf(“关键词”,fromi);
var i=str.lastIndexOf(“关键词”,fromi);
②判断是否包含符合规则的关键词:
var i=str.search(/reg/);
③返回所有关键词内容:
var kwords=str.match(/reg/i);
* i为忽略大小写;g为全部查找;
④替换:str=str.replace(/reg/ig,“替换值”);不直接修改,返回新字符串;
⑤切割:var subs=str.split(/reg/);按reg匹配切割为多个子字符串存在subs中;
⑥获得指定位置字符:
str.charAt(i);óstr【i】;
var code=str.charCodeAt(i);ó获得i位置字符的Unicode号;
var char=String.fromCharCode(code);ó将Unicode号转为字符;
⑦截取子字符串:
str.slice(starti,endi+1);
str.substring(starti,endi+1);不支持负数参数;
str.substr(starti,n);从starti开始截取n个字符;