正则表达式:
什么是正则表达式?它的作用是什么?
---正则表达式就是拿一些通配符去制定一个字符串的格式(规则)。
它主要用来去验证一个字符串是否符合我们约定的格式,
还有一个功能就是查询符合规则的字符串。
正则表达式的好处?
可以减少很多逻辑判断,减少了代码量,比较灵活。
如何创建正则表达式对象?
1) var reg=/规则/参数;
2) var reg = new RegExp("规则","参数");
规则有很多特定的符号组成。我们只要灵活的使用这些符号就能组成很复杂的字符串规则。
常用的通配符
. 可以匹配任何字符****
\d 匹配0-9的所有数字****
\D 匹配非数字
\s 匹配所有空白字符,包括空格、制表符、换行符、回车符等****
\S 匹配所有非空白字符
\w 匹配所有的单词字符,包括0-9数字、26个英文字母和下划线****
\W 匹配所有的非单词字符
\b 匹配单词边界 :单词前后必须有一个非单词字符****
\B 匹配非单词边界
[abc] 查找方括号之间的任何字符。--代表一个字符
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。==\d---代表一个数字
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。---不仅仅是52个字母,当中还有一些符号,比如]
(red|blue|green)查找任何指定的选项
正则表达式量词
n+ 匹配任何包含至少一个 n 的字符串。----- 1到多
n* 匹配任何包含零个或多个 n 的字符串----- 0到多
n? 匹配任何包含零个或一个 n 的字符串----- 0或1
n{X} 匹配包含 X 个 n 的序列的字符串。------ 指定具体的个数
n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。---指定满足区间的个数
n{X,} 匹配包含至少 X 个 n 的序列的字符串。---指定大于等于X的个数
n$ 匹配任何结尾为 n 的字符串。---以指定的字符结尾
^n 匹配任何开头为 n 的字符串。---移指定的字符开头
正则表达式修饰符
i 执行对大小写不敏感的匹配。 ---忽略大小写
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。---全局查找
m 执行多行匹配。--多行查找,换行以后也认为是新的一行。
表达式
(ab)
eg:
验证电子邮件的格式,要求:
1、@符号前面必须由字母数字下划线组成,且字符数必须大于等于5个
2、@后面必须由数字或字母组成,且字符数必须大于等于3个
3、必须有一个. 点后面以com或者cn 或者com.cn或者org结尾
var email=window.prompt("请输入合法的电子邮件",'');
//var reg=/^\w{5,}@([a-z]|[A-Z]|\d){3,}\.(com|com.cn|cn|org)$/;
var reg=/^[0-9A-Za-z_]{5,}@[0-9A-Za-z]{3,}\.(com|com\.cn|cn|org)$/;
document.write(reg.test(email));
验证省份证号码,18位数字,最后一位可能是数字也可能是X
var cardNo=window.prompt("请输入省份证号",'');
var reg=/^\d{17}(\d|X)$/;
document.write(reg.test(cardNo));
验证这样的格式:一个四位数XXXX,第一位和最后一位一样,第二位和第三位一样(1221);
(引用表达式的概念)语法:\表达式的位置
正则表达式中的表达式是()
var reg=/^(\d)(\d)\1\2$/;
var str="1212";
document.write(reg.test(str));
家用电话号码验证:必须以0开头,后面跟两个数字-后面8个数字
验证url s可有可无,有的话只有一个
https://www.sina.com.cn/aa/bb/cc/index.html