推广 热搜: 行业  设备  机械    系统  教师    参数  经纪  蒸汽 

JS----正则表达式手机号定位「JS----正则表达式」

   日期:2025-01-12     移动:http://sjzytwl.xhstdz.com/mobile/quote/87467.html

1. 正则表达式介绍

     1-1 为什么要学习正则表达式

如何获取一个字符串中的数字字符,并按数组形式输出,如:

Dgfhfgh254bhku289fgdhdy675gfh

输出: [254,289,675]

分析:循环用charAt()的方法获取到每一个子字符串,判断他是不是在0~9之间,是就把他扔到准备好的数组里

用js的编程实现

 

如果用正则表达式解答此题,会变得简单

 

     1-2 什么是正则表达式

正则表达式,全称“Regular expression,在代码中常简写为regexregexpRE。正则表达式,就是用某种模式去匹配一类字符串的公式。遇到需要匹配(match)、查找(seach)、替换(replace)、判断字符串的情况发生使用正则表达式,是非常重要的手段。

     1-3 如何定义正则表达式

正则表达式的定义共有2种方式

  1. 显式定义(构造函数

       let  变量名 =  new RegExp("正则表达式模式");

  2. 隐式定义(字面量)

    let 变量名 =  /正则表达式模式/

     1-4正则表达式常用方法

举例

let myregex = new ReExp("d+");

上面语句等价于下面

let myregex = /d+/;

 正则表达式常用方法

1. test

正则去匹配字符串,如果匹配成功就返回真,匹配失败返回假

写法正则.test(字符串)

var str='abcdef';

var re=/b/;

alert(re.test(str));

2. search

正则去匹配字符串,如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回-1

写法:字符串.search(正则)


var str="abcdef";

var re=/b/;

alert(str.search(re));

//返回1

var re=/w/;

//返回-1

var re=/B/;

//返回-1 

3. match

正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null

写法:字符串.match(正则)

比如上面例子要找出数字

var str="dgfhfgh254bhku289fgdhdy675";

var re=/d+/g;

alert(str.match(re));

//输出2 

4. replace

正则去匹配字符串,匹配成功的字符被新的字符串替换

replace的写法:字符串.replace(正则,新字符串)

:

var str="aaa";

var re=/a/;

str=str.replace(re,"b");

alert(str);

//输出baa 

5. exec

正则去匹配字符串,如果匹配成功,就返回匹配成功的数组index:表示第一个匹配的字符在原字符串中的位置input:表示原字符串groups:表示当初中命名的分组时匹配到的分组对象如果匹配不成功,就返回null

写法:正则. exec(字符串)

比如上面例子要找出数字

var str="dgfhfgh254bhku289fgdhdy675";

var reg=/d+/g;

alert(reg.exec(str));

//输出2 

普通字符就是a~z0~9这类常见的字符。其中特殊字符又称为“元字符”。元字符之所以叫特殊字符,就是它的特点跟普通字符不一样。例如邮政编码中,我们限定只能输入6个数字,那“数字”这个概念怎么理解呢?这个时候我们就用到了元字符d来代替。 

元字符说明 d匹配数字,相当于 [0-9 ]D匹配非数字,相当于 [ ^ 0-9 ]w匹配 字母数字 下划线 汉字W匹配不是 字母数字 下划线 汉字s匹配任意的空白符,如空格,换行符,制表符S匹配任意不是空白的字符. 点号匹配除了换行符以外的任意字符[...]匹配方括号中的所有字符[^...]匹配非方括号中的所有字符
1. 用正则表达式匹配的是中国的电话号码,以 0 开头,然后是两个数字,然后是一个连字号“ - ,最后   是 8 个数字。

     : 028-8888888

       var reg = /0d{2}-d{8}/

           2.  正则表达式匹配HTML标签中的<h1><h2><h3><h4><h5><h6>

       var reg = /<h[123456]/

       var tel = '<h7>标题元素</h7>'

一、连接符简介

学习了正则表达式常用元字符,我们知道要想匹配数字,正则表达式就要这样写

[123456789]   [1-9]

其中[]表示匹配方括号内的任一字符。在正则表达式中,匹配数字或者英文字母的书写非常不方便。因此,正则表达式引入了连接符“-”来定义字符的范围。

 

 限定符-量词

一、什么是定位符

在正则表达式中,定位符,说白了,就是限定某些字符出现的位置。

常用的正则表达式定位符如下

二、举例:

^once

这个模式包含一个特殊的字符^,表示该模式只匹配那些以once开头的字符串。例如该模式与字符串"once upon a time"匹配,与"There once was a man from NewYork"不匹配。正如如^符号表示开头一样$符号用来匹配那些以给定模式结尾的字符串。

bucket$

这个模式与"Who kept all of this cash in a bucket"匹配,与"buckets"不匹配。字符^$同时使用时,表示精确匹配(字符串与模式一样

修饰符

一、修饰符

g: global 全文搜索,不添加,搜索到第一个匹配停止

i:  ignore case 忽略大小写,默认大小写敏感

m: multiple lines 多行搜索 

二、用法:

var reg = /bisb/;

var str = "He is a boy, This is a dog.Where is she? ";

str.match(reg);

只匹配第一个

正则后加g匹配所有的

var reg = /bisb/g;

特殊转义符

正则特殊转义符

 f 匹配换页符

  匹配换行符

  匹配回车符

  匹配制表符

 v 匹配垂直制表符

   \ 匹配

   " 匹配 "

   ' 匹配 '

Unix系统里,每行结尾只有“<换行>,即”

Windows系统里面,每行结尾是“<换行><回车 >,即“

Mac系统里,每行结尾是“<回车>,即”

 

 贪婪模式与非贪婪模式

在贪婪(默认)模式下,正则引擎尽可能多的重复匹配字符

贪婪写法

 var str = 'a "witch" and her "broom" is one';

 str.match( /".*"/g);

非贪婪模式和贪婪模式相反,可通过在代表数量的标示符后放置 ? 来开启非贪婪模式,如 ? 、+? 甚至是 ?? 。在非贪婪模式下,正则引擎尽可能少的重复匹配字符

 

 var str = 'a "witch" and her "broom" is one';

 str.match(/".*?"/g ) // "witch", "broom"

 

 1.已知邮箱字符串'zhousir028@qq.com'写正则匹配该邮箱字符串是否符合邮箱格式?

             邮箱格式要求:

                        1. 必须包含@符号

                        2. @符号左右两边可以字母或数字或字母数字组合

                        3. 以.com结尾

 

           2. 已知密码字符串'Zhousir12345' 写正则匹配密码是否符合密码强度规则?

              密码强度规则: 1. 必须是大写字母开头

                          2. 密码包含字母和数字

                          3. 至少8位

 

           3. 已知手机字符串'18012345678' 匹配中国手机号是否正则

              中国手机号规则: 1. 以1开头

                             2.第二位是 3或5或8

                             3. 总共11位

 

 

          4. 将字符串中单词is替换成 'are'字符串如下:

                'He is a boy, This is a dog.Where is she?'

本文地址:http://sjzytwl.xhstdz.com/quote/87467.html    物流园资讯网 http://sjzytwl.xhstdz.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号