js正则表达式
18.正则表达式
- 正则用来定义一些字符串的规则,程序可以根据这些规则来判断一个字符串是否符合规则,也可以将一个字符串中符合规则的内容提取出来。
18.1 创建正则表达式
1. 构造函数创建正则表达式
var reg = new RegExp(“正则”,“匹配模式”);
注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串中转义字符,如果要使用\则需要使用\\来代替
匹配模式:
- i:忽略大小写
- g:全局匹配模式
//test()
//使用这个方法可以检查字符串是否符合正则表达式的规则,如果符合返回true,否则返回false
var reg = new RegExp("a", "i");
console.log(reg.test("aajjj3"));
//true
2. 使用字面量创建正则表达式
语法:var reg = /正则表达式/匹配模式
匹配模式可以多个一起写:/gi
var reg = /a/i;
console.log(reg.test("abc"));
//true
//--------或的写法---------
//1. | 或
var reg = /a|b|c/;
//2. [] 或
//[abc] == a|b|c
var reg = /[abc]/;
//3. [x-y] 或 [x-y] x的ascii到y的ascii码之间的值
//[a-c] == a|b|c == [abc]
//---------元符号---------
18.2 正则表达【字符串】相关方法
-
split()
-
可以根据指定内容将一个字符串拆分为一个数组
-
参数:
- 需要一个字符串作为参数,将会根据字符串去拆分数组
- 可以接收一个正则表达式,此时会根据正则表达式去拆分数组
var str = "acuggu" var result = str.split(/[A-z]/); console.log(result); //"a,c,u,g,g,u"
-
-
match()
- 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索 - 可以为一个正则表达式设置多个匹配模式,且顺序无所谓
var str = "hello abc aec abc" //我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容 var result = str.match(/a[bef]c/ig); console.log(result); //"abc,aec,abc" //match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果 console.log(Array.isArray(result)); //true
- 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
-
replace()
-
可以将字符串中指定内容替换为新的内容
-
参数:
- 被替换的内容,可以接受一个正则表达式作为参数
- 新的内容
-
var str = "hello abc aec abc"
//空串则为删除
//默认只会替换第一个
var result = str.search(/a[bef]c/gi, "@_@");
var result2 = str.search(/a[bef]c/gi, "");
console.log(result);
//"hello @_@ @_@ @_@"
-
search()
-
可以搜索字符串中是否含有指定内容
如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1
-
它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串
var str = "hello abc aec abc" var result = str.search(/a[bef]c/); console.log(result); //"6"
-
serach()只会查找第一个,即使设置全局匹配也没用
-
18.3正则语法
-
量词
-
通过量词可以设置一个内容出现的次数,量词只对它前边的一个内容起作用
{n} 正好出现n次
{m,n} 出现m-n次
{m,} m次以上至少一个,相当于{1, }
*个或多个,相当于{0, }
? 0个或1个,相当于{0,1}
-
-
边界表达式(不要在java中用,javaScript中用)
^:正则开始
$:正则结束 :注意结束前一个才是结束匹配//以a开始 reg = /^a/ //以a结束 reg = /a$/ //只能匹配a reg = /^a$/ reg.test("aaa");//false reg.test("a");//true
表达式 匹配值 . 匹配除换行符(\n、\r)之外的任何单个字符,相等于[^\n,\r]。【若想查找点必须用转义字符\.】 \w 任意字母、数字、下划线, [A-za-z0-9_] \s 匹配所有空白符,包括换行 \S 非空白符,不包括换行。 \W 除了任意字母、数字、下划线, [A-za-z0-9_] \d 任意的数字 [0-9] \D 除了数字 [ ^0-9] \b 单词边界 \B 除了单词边界 -
在正则表达式中使用\作为转义字符
\. 来表示.
\\ 表示\ -
用构造函数创建正则表达式【字符串的转义字符】
\\. 来表示.
\\\\ 表示\
- 匹配手机号
//1. 11位
//2. 以1开头
//3. 第二位3-9
//4. 三位以后任意数字九个
var phoneReg = /^1[3-9][0-9]{9}$/
- 去掉两端的空格:
var s = " f afa ";
s = s.replace(/^\s*|\s*$/g,"");
- 匹配单词
reg = /\bchild\b/
- 电子邮件的正则
<script>
/*
* 电子邮件:
* 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 = "abc.hello@163.com";
console.log(emailReg.test(email));
</script>
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfekbc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01