正则表达式(内建对象)
- 用户名 邮件 上网输入的信息 让计算机检查输入是否符合
- 正则表达式是用于定义一些字符串的规则,来检查一个字符串是否符合规则
获取将字符串中符合规则的内容提取出来
语法:reg=new RegExp("正则表达式","匹配模式")
使用typeof 检查正则对象,会返回Object
这个正则表达式可以用来检查一个字符串是否含有a
var reg=new RegExp("a")
-在构造函数中可以传一个匹配模式作为第二个参数
可以是 i( 表示忽略大小写 )
g (全局匹配模式)
-
正则表达式的方法:
-
test() *严格区分大小写
-
-使用这个方法可以用来检查一个字符串是否符合正则表达式的规则
-
如果符合则返回true 否则返回false
-
{
-
//判断 字符串里面是否含有zjx
-
var reg = new RegExp("zjx")
-
var result = reg.test("ahnidjszjx")
-
console.log(result) //返回true
-
}
-
正则表达式的字面量
-
语法:(正则表达式 和匹配模式 都不是字符串)
-
var 变量 = / 正则表达式/ 匹配模式
-
// var reg=new RegExp("zjx","i") 使用构造函数 参数使用引号 // var reg=/zjx/i 使用字面量 字面量里面没有引号 - 使用构造函数更加灵活(参数可以是个变量) - 使用字面量的方式创建更加简单(写死了就不能改了) - 创建一个正则表达式,检查一个字符串是否又a或者b 竖线表示或者的意思(|) reg = /a|b/ - 创建一个正则表达式检查一个字符串中是否有字母 []里面的内容也是或者的意思 [ab]===a|b * [a-z]表示任意小写字母 * [A-Z]表示任意大写字母 * [A-z]表示任意字母 - 检查一个字符串中是否含有abc 或者 adc 或者 aec reg=/abc|adc|aec/ 找规律 reg=/a[bde]c/ - [^ ] ===> [^(向上的箭头)] 表示含有除了中括号里面的都可以 [^ab] "abc" ==>true 字符串abc返回true 因为里面的c是除了ab以外的字母
-
*/
// var reg=/[a-z]/i
// console.log(reg.test(“12354dsad”))
/*
-
split()
-
可以将一个字符串拆分为一个数组
-
这个方法不指定全局匹配 也会全拆分
-
方法中可以传递一个正则表达式作为参数,这样方法会根据正则表达式拆分字符串
-
search() 与indexOf()方法功能类似 不同是:search可以放正则表达式
-
可以搜索字符串中是否有指定内容
-
不能全局匹配 只会查找第一个 即使设置全局匹配也无用
-
如果搜索到指定内容 则会返回第一次出现的索引,如果没有搜索到则返回-1
-
他可以接受以恶搞正则表达式作为参数,然后回根据正则表达式取检索字符串
-
match()
-
可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
-
默认情况下match只会找到第一个符合要求的内容,找到以后就停止检索
-
我们可以设置正则表达式为全局匹配默哀是,就会匹配到所有的内容
-
match会将匹配到的内容会封装到一个数组汇总返回,即使只查询到一个结果
-
match(/[a-z]/gi) 全局搜索 小写字母 不区分大小写
-
replace()
-
- 可以将字符串中指定的内容替换为新的内容
-
-参数
-
第一个:被替换的内容,可以接受一个正则表单时作为参数
-
第二个:新的内容
-
- 不回影响原字符串
-
- 默认只会替换第一个
-
量词
-
-通过量词可以设置一个内容出现的次数
-
量词只对前边的内容起作用 用小括号就能起到组合的作用
-
/ab{3}c/ 代表 abbbc
-
/(ab){3}c/ 代表 abababc
-
{n} 正好出现n次
-
{m,n} 出现M-N次
-
{m, } 出现m次以上
-
+ 表示出现一个 {1, }
-
* 表示0个或多个 {0, }
-
? 表示0个或者一个{0,1}
-
rg=/a{3}/ //表示连续出现三次a
-
{1, 3}代表出现1-3次
-
检查一个字符串是否以A开头
-
reg=/^a/ 这表示的是以a开头 [^a] 表示的是除了a以外
-
reg=/a$/ 这表示以a结尾
-
^ 表示开头
-
$ 表示结尾
-
如果正则表达式中同时使用^$则要求字符串必须完全符合**正则表达式**
-
/
// var str=“aaaavdsfdsfsdfsdg”
// var reg =/^a[a-z]+g$/
// console.log(reg.test(str))
/
创建一个正则表达式 ,用来检查一个字符串是否是一个合法的手机号
1、 1开头
2、 [3-9]
3、 [0-9]{9}
var reg=/^1[3-9][0-9]{9}$/
var str=17306931705;
console.log(reg.test(str))
-
reg=/./ 点有表示特殊意义 含有字符 所以要实现单纯的点 就需要使用转义字符 /./
-
检查一个字符串中是否含有.
-
。表示任意字符
-
在正则表达式中使用\作为转义字符,而\是字符串中转义字符
-
\. 表示.
-
\\ 表示\
-
注意,使用构造函数时,由于他的参数是一个字符串,而\是字符串中转义字符
-
如果要使用\则需要使用\\来代替
-
reg=/\./
-
等于
-
new RegExp("\\.")
-
var reg = new RegExp("\\.")
-
console.log(reg)
-
\w 表示任意的字母 数字 下划线 [A-z0-9_]
-
\W 表示除了字母、数字 下划线 (和\w相反)[^A-z0-9_]
-
\d 表示任意数字[0-9]
-
\D 表示除了数字[^0-9]
-
\s 表示 空格
-
\S 表示除了空格
-
\b 表示单词边界
-
\B 表示除了单词边界
-
创建一个正则表达式检查一个字符串中是否含有单词child
-
reg1=/child/ 检查字符串是否含有child 无论是不是独一个child children也是满足
-
reg2=/\bchild\b/ 检查字符串是否含有child 无论是不是独一个child children也是满足
-
console.log(reg1.test("hello children")) 返回true
-
console.log(reg2.test("hello children")) 返回false
-
去除空格
-
使用空串来替换空格
-
str=" hello "
-
str.replace(/^\s$/g,'')
-
/
// var str=" hello "
// console.log(str)
// str= str.replace(/^\s|\s*/g,’’)
// console.log(str+“1”)
// /^\w+(\w|.)*@ [0-9A-z]+ (.[A-z]{2,5}){1,2}$/
//网上有邮件正则表达式的格式 搜索常用正则表达式