正则表达式简介:
- 正则表达式用于定义一些字符串的规则。
- 计算机可以根据这些正则表达式,来检查一个字符串是否符合规则。或者将字符串符合规则的内容提取出来。
- 创建正则表达式:语法:var 变量 =new RegExp("正则表达式","匹配模式"),使用typeof来检查正则表达对象,返回object。
- var reg =new RegExp("a"),这个正则表达式中来检查一个字符串是否含有a
- 正则表达式的方法,test()使用这个方法可以用来检查一个字符串是否符合正则表达式的规则。如果符合返回true,如果不符合返回false。
- 在构造函数中可以传递一个匹配模式作为第二个参数。
正则语法:
使用字面量来创建正则表达式:语法:var 变量 = / 正则表达式 / 匹配模式
var reg = new RegExp("a","i");
reg =/a/i;
//这俩个表达式是一样结果
//这里的i是忽略大小写
使用字面量的方式创建更加简单,使用构造函数创建更加灵活。
- 创建一个正则表达式,检查一个字符串中是否有a或者b:a|b;|表示或者。
- 创建一个正则表达式,检查一个字符串中是否有字母。[ ] 里的内容也是或的关系。[ab] == a | b; [a-z]任意小写字母;[A-Z]任意大写字母;[A-z]任意字母。
- 检查一个字符串中是否含有abc或adc或aec-----reg= / a [ b d e ] c / ;
- [^ ]:表示除了。
字符串和正则相关方法:
- split()-----可以将一个字符串拆分为一个数组,方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串。这个方法即使不指定全局匹配,也会全部插分。如果这个字符串里又有数字又有字母,则用可以使用[A-z]任意字母进行拆分。
- search()------可以搜索字符串中是否含有指定内容。如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到,则返回-1。它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串。search只会查找第一个,即使设置全局匹配也没用。
- match()------可以根据正则表达式,从一个字符串中将符合条件的内容提取出来。默认情况下,match只会找到第一个符合要求的内容,找到以后就会停止检索。我们可以设置正则表达式为全局匹配模式,这样就会找到匹配的所有内容。可以为一个正则表达式设置多个匹配模式,且顺序无所谓。match( )会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果。
str="1sd35f8d9S9X0"; result = str.match(/[A-z]/ig);
- replace()----可以将字符串中指定内容替换为新的内容, 参数:1.被替换内容,可以接受一个正则表达式作为参数 。 2.新内容, 默认只会替换第一个
正则表达式语法:
量词:通过量词可以设置一个内容出现的次数,量词只对他前边的内容起作用。
- {n}正好出现n次,{m,n}出现m到n次,{m,}m次以上。
- +表示至少一个,相当于{1,}。
- *表示0个或多个,相当于{0,}。
- ?表示0个或1个,相当于{0,1}。
- ^检查一个字符串是否以指定字符串开头,eg:/^a/;
- $检查一个字符串是否以指定字符串结尾,eg:/a$/;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
//创建一个手机号规则
//1.以1开头 2.以3-9 3,剩下位置任意数字
var phone="14345678910";
var phoneStr=/^1[3-9][0-9]{9}$/;
console.log(phoneStr.test(phone));
</script>
</head>
<body>
</body>
</html>
结果为true;
- 检查一个字符串是否含有 . ---- . 表示任意字符
- 在正则表达式中\作为转义字符
- \. 表示 .
- \\ 表示 \
- 注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串中转义字符。如果要使用\则需要\\来代替
- \w:表示任意字母、数字、_ [A-z 0-9]
- \W:除了字母、数字、_ [^A-z 0-9]
- \d:表示任意数字[0-9]
- \D:表示除了数字[^0-9]
- \s:表示空格
- \S:除了空格
- \b:表示单词边界
- \B:表示除了边界
邮件正则:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>邮箱正则</title>
<script type="text/javascript">
//电子邮箱
// hello .nihao @ abc .com .cn
//任意字母数字下划线 .任意字母数字下划线 @ 任意字母数字 .任意字母(2-5位) .任意字母(2-5位)
// \w{3,} (\.\w+)* @ [A-z0-9]+ (\.[A-z]{2,5}){1,2}
var emailReg =/^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/;
var email = "ddf.jeo8933@sa.com.df";
console.log(emailReg.test(email));
</script>
</head>
<body>
</body>
</html>