正则表达式基础
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式基础相关的知识,希望对你有一定的参考价值。
正则表达式基础1. Search 查找某个字符的位置
var str='abcdef'
alert(str.search('a'))
2.Substring 获取子字符串
var str='abcdef'
alert(str.substring(2-5))//从字符串中截取2-5 但是不包括5
也可以传进去一个参数 从哪个参数直接截取到结尾
var str='abcdef'
alert(str.substring(2))//从第二个位置开始截取到末尾
3.CharAt 获取某个字符
var str='abcdef'
alert(str.charAt('2'))//获取2位置上的值
4.Split 分割字符串,获得数组
var str='12-22-aa-9'
var arr=str.split('-')
alert(arr)
二、正则表达式
1、什么是正则表达式:可以理解为一个规则,也叫规则表达式
正则表达式有2种方法写
第一种 js风格
var re=new RegExp('b') 这个里面的b就代表b本身
var str='abcdef'
alert(str.search(re));
第二种perl风格
var re=/b/; 跟第一种效果一样
var str='abcdef'
alert(str.search(re));
2、i的用法(忽略大小写)
第一种var re=new RegExp('b', 'i')
var str='abcdef'
alert(str.search(re));
第二种var re=/b/i;
var str='aBcdef'
alert(str.search(re));
3、match 把所有匹配的东西,全部提取出来
\d 数字
var str='aqq 23 3 vaqwd'
var re=/\d/;找数字,但是只能找一个
alert(str.match(re));
4、g可以把所有数字找出来
var str='aqq 23 3 vaqwd'
var re=/\d/g;找数字,全部找出来,但是不是连起来的,比如23会变成2,3
alert(str.match(re));
5、想解决上面不是连起来的问题使用+号,表示若干
var str='aqq 23 222 3 vaqwd'
var re=/\d+/g;
alert(str.match(re));
6、replace 替换
下面例子把a替换成0
var str='aqq 23 222 3 vaqwd'
var re=/a/g;
alert(str.replace(re,'0'))
多个替换的写法
Var re=/北京|百度|淘宝/g
7、分括号[] 专业叫法是元字符,我习惯叫方括号
用法1:[abc]这是一种或的用法abc取那个都行
var str='apc xpc dpc ipc ppc'
var re=/[apx]pc/g;
alert(str.match(re))
效果看一下就明白了
用法2:[a-z] [0-9]范围
var str='a22c 33 dp44 445 ppc'
alert(str.match(/[0-9]+/g))
用法3:[^a-z]排除a-z
var str='a22c 33 dp44 445 ppc'
alert(str.match(/[^0-9]+/g))
用法4:组合起来用[^a-z0-9]排除a-z和0-9
8、过滤html标签的方法,比如小说里面都有好多标签 给过滤掉
var re=/<[^<>]+>/g
9、\d 数字 [0-9]
\w 英文 数字 下划线 [a-z0-9_]
\s 空白字符
\D [^0-9]
\W [^a-z0-9_]
\S 非空白字符
10、量词
{n} 正好出现n次
\d{8} 8位数字
电话号码是非0开始的所以[1-9]\d{7}
{n,m} 最少n次,最多m次
QQ号码最少5位数字而且开头是非0,写法是
[1-9]\d{4,10}
{n,}最少n次,最多不限
+ 等价于{1,}最低出现一次,最多不限
? 等价于{0,1}最少1次,最多1次,也就是可有可无
*等价于{0,}
11、邮箱校验
一串英文、数字、下滑线 @ 一串英文、数字 . 一串英文
\w+ @ [a-z0-9]+ \. [a-z]+
Var re=/^\[email protected][a-z0-9]+\.[a-z]+$/i // test检验正则是否符合规则。正确返回true 不确定为flase
Test有个特性 字符串一部分符合要求,就可以返回true
^不出现在方括号里面
代表^行首和$行尾
if(re.test(oTxt.value))
{
Alert(’合法的邮箱’);
}
else
{
Alert(’不合法的邮箱’);
}
以上是关于正则表达式基础的主要内容,如果未能解决你的问题,请参考以下文章