js----正则表达式

正则表达式实际上是一个对象

正则表达式用于判断用户输入的格式是否正确

计算机可以根据正则表达式,来检查字符串是否符合规则.或者把符合规则的部分提取出来

创建一个正则表达式对象

var reg = new RegExp("a");

console.log(reg);//  /a/

正则表达式的方法

text()使用这个方法可以用来检查一个字符串是否符合正则表达式的规则。

如果符合返回true,否则返回flase

var str1 = "abcdef";
var str2 = "cccccc";

var result1 = reg.text(str1);
var result2 = reg.text(str2);
console.log(result1);//true
console.log(result2);//flase

//检查str1里面是否有reg里规定的字符。有返回true,否则返回flase 

如果想要忽略大小写来判断,可以如下所示:

var reg = new RegExp("a","i"); //这里的i表示忽略大小写 则使用的时候,检验到a还是A都是true


//如果想要作用域整个字符串中的全部a,则使用全局匹配g
var reg = new RegExp("a","g");

使用字面量创建正则表达式

var 变量 = /正则表达式/匹配模式

var reg = new RegExp("a","i");
//以上的代码和下面的字面量创建正则表达式是相同的

reg = /a/i;

创建一个正则表达式,检查一个字符串中是否含有a或b

使用|表示或者的意思

reg = /a|b/;

创建一个正则表达式,检查一个字符串中是否含有字母

reg = /a|b|c|d|...../;  //太长了

reg =[a-z];//表示a到z,且[]里面的数也是或的关系  任意的小写字母


//[A-Z]:任意的大写字母
//[A-z]:表示任意字母
//[0-9]:任意数字

创建一个字符串是否含有abc ,adc , aec 

reg = /a[bde]c/;
//[^] 表示除了

reg = [^ab]; //表示除了ab
var str = abc; 
console.log(reg.text(str)); //除了ab之外还有c,返回true  
//如果str中只有a或者只有b,或者只有ab,则返回flase


字符串和正则相关的方法

split()函数

split()可以将一个字符串拆分为一个数组

方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串

这个方法即使不指定全局匹配,也会全都拆分

var str = "1a2b3c4d5e6f7";
var result = str.split(/[A-z]/); //拆分成 1,2,3,4,5,6,7

seach()函数

seach()可以搜索字符串中是否含有指定内容

如果搜索到指定内容,则会返回第一次出现的索引

如果没有搜索到则会返回-1

它可以接受一个正则表达式作为参数,会根据正则表达式去检索字符串。

var str = "hello abc hello acc hello adc";

var result = str.search(/a[bcd]c/); //查找字符串中有没有abc acc adc

match()函数

match()可以根据正则表达式,从一个字符串中符合条件的内容提取出来

默认情况下的match只会找第一个符合要求的内容,找到以后就停止检索

可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容

可以为一个正则表达式设置多个匹配模式,且顺序无所谓

match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果。

var str = "a1b2c3d4e5f6g";
result = str.match(/[A-z]/g); //全局匹配模式

console.log(result); //a,b,c,d,e,f,g 这里的result是以数组的形式返回

replace()函数

replace()替换 可以将字符串中的指令内容替换成新的内容

参数1 被替换的内容

参数2 新的内容

默认只会替换第一个

var str = "1a2b3c4d5e6f";
result = str.replace(/a-z/gi,"@"); //将所有的字母都变成@
console.log(result);//1@2@3@4@5@6@

正则表达式语句

量词 :通过量词可以设置一个内容出现的次数。

量词只对前边的一个词起作用。

var reg = /a{3}/; //正好出现3次 aaa

var reg = /ab{3}/; //abbb  

var reg = /(ab){3}/; //ababab

var reg = /ab{1,3}/; //ab abb abbb b可以出现1~3次

var reg = /ab{1,}/;  //ab abb .... b可以出现1~n次

var reg = /ab+c/;    //+表示b至少一个,相当于{1,}

var reg = /ab*c/;    //*表示0个或多个 相当于{0,}

var reg = /ab?c/;     //?表示0个或者1个 相当于{0,1}

检查一个字符串的开头是否是a

reg = /^a/;  //以a为开头 ^表示开头

reg = /[^a]/; //除了a

检查一个字符串的结尾是否是a 

reg = /a$/; //结尾是否是a

如果在正则表达式中如果同时存在^和$,则表示只能是一个a

reg = /^a$/;   //以a开头且以这个a为结尾,则只能是一个a

.(点)表示任意字符

如果只是想单纯表示 . 可以用\. 来表示. 

var reg = /./ ;   //这里表示的.可以是任意字符

var reg = /\./; //这里表示的.就只能是.这个符号 \在这里表示转义字符

注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串的转义字符,如果要使用\,则应该要\\来使用

var reg = new RegExp("\\."); //解析出来等于/\./   也就是表示一个.

var reg = new RegExp("\\\\");   //解析出来等于/\\/   也就是表示\\
//特殊字符
// \w  表示任意字母和数字还有下划线 [A-z0-9_]
// \W  表示除了任意字母和数字还有下划线  [^A-z0-9_]
// \d  表示任意的数字  [0-9]
// \D  表示除了数字 [^0-9]
// \s  表示空格
// \S  表示除了空格
// \b  表示单词边界
// \B  表示除了单词边界

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值