JavaScript基础-06-正则表达式
1. 正则表达式用于定义一些字符串的规则:计算机可以根据正则表达式,来检查一个字符串是否符合规则,将字符串中符合规则的内容提取出来。
2. 创建正则表达式对象:
var reg=new RegExp("正则表达式","匹配模式"); //结果:/内容/
匹配模式:值:i:忽略大小写
g:全局匹配模式
使用字面量来创建正则表达式:
语法:var 变量=/正则表达式/匹配模式;
var express=/a/i;
var result=express.test("abcdse");
console.log(result);
检查一个字符串中是否有a或b:
var express=/a|b|c/i;
或var express=/[ab]/i;
检查是否有字母:[A-z]
检查是否有abc,adc,aec:
var express=/a[bde]c/i;
[^ab]:除了ab以外都为true
[0-9]:任意数字
[a-z]:任意小写字母
3. 正则表达式的方法:test( )使用这个方法可以用来检查一个字符串是否符合正则表达式,符合返回true,不符合返回false;
var str='a'; //用来检验字符串中是否含有a
var result=reg.test(str);
console.log(result);
4. 字符串与正则表达式
split:把字符串分割为字符串数组。
根据字母拆分字符串: //不指定全局匹配也会全部改变
var express='a1b2n3v4b5c5g7';
result=express.split(/[0-9]/);
console.log(result);
search:搜索字符串中是否含有指定内容
若搜索到指定内容,则返回第一次出现的索引,若没有搜索到返回-1
只会查找第一个
var express="a1 b2 n3 v4 b5 c5g7";
result=express.search('a1');
console.log(result);
var express="a1 b2 abc v4 aec c5g7";
result=express.search(/a[be]c/);
console.log(result);
match( ):根据正则表达式,从一个字符串中将符合条件的内容提取出来
默认情况下只会找到第一个符合要求的内容,找到以后就停止检索,将正则表达式设置为全局匹配,就会匹配到所有内容。
会将匹配到的内容封装到一个数组中返回,即使只搜索到一个结果。
var express="a1b2abcv4aecc5g7";
result=express.match(/[A-z]/gi);
console.log(result);
replace():将字符串中指定内容替换为新的内容。
参数:被替换的内容,可以接受一个正则表达式作为参数
新内容
默认只替换第一个
var express="a1b2abcv4aecc5g7";
result=express.replace(/b/gi,"g"); //删除字母:新内容为“”
console.log(result);
5. 量词:通过量词可以设置一个内容出现的次数:{n}正好出现n次,量只对它前面一个内容起作用;(ab){3}==ababab;
ab{1,3}c:出现一次到三次b
ab{3, }c:出现三次以上b
ab+c:出现至少一个b
ab*c:出现0个或多个b
ab?c:出现0个或1个b
^a:以a开头
a$:以a结尾
^a|a$:以a开头或者以a结尾
^a$:只能是一个a
var str=/a{3}/;
6. 检查一个字符串是否为一个合法手机号
以1开头 ^1
第二位3-9任意数字 [3-9]
三位以后任意数字 [0-9]{9}$
var reg=/^1[3-9][0-9]{9}$/;
console.log(reg.test('13953975005'));
7. 检查一个字符串中是否含有.
. 表示任意字符
使用 \ 来表示转义字符,使用 \ . 来表示 .
在构造函数要使用 \ 要利用 \\ 来代替
\w |
任意数字、字母、_、[A-z 0-9] |
\W |
除了任意数字、字母、_、[A-z 0-9] |
\d |
任意数[ 0-9] |
\D |
除了任意数[ 0-9] |
\s |
空格 |
\S |
除了空格 |
\b |
单词边界 |
\B |
除了单词边界 |
var reg=/\bchild\b/;
console.log(reg.test('hello children'));
8. 接收一个用户的输入
var str=prompt("请输入你的用户名:");
//去除字符串中前后的空格,使用“”替换空格
str=str.replace(/^\s*|\s*$/g,"");
console.log(str);
9. 写一个电子邮件的正则
任意的字母数字下划线 . 任意的字母数字下划线@ 任意字母数字 .任意字母(2-5). 任意字母(2-5)
\w{3,} (\.\w+)* @ [A-z0-9]+ ( \.[A-z]{2-5}){1,2}
可以在网上搜索