js数字正则

js正则表达式

1.了解什么是正则表达式?

正则表达式(Regular Expression)又称规则表达式,简单来说它就是一个概念,用事先声明好的字符和字符的组合,来组成一个“规则字符串”,用来检测我们书写的字符串是否符合规则。听到这里也许你有些懵,别慌伙计,咱们往下看↓↓↓

2.正则表达式的应用

就以163邮箱为例子,像判断邮件地址长度、开头是否首字母,是否无特殊字符、判断密码强度,是否符合规范等等,都需要用我们的正则来检索判断的。
在这里插入图片描述

3.常用的正则表达式字符
单个字符
. 匹配任意字符(他就是一个点)
范围内字符
[0~9] 匹配0~9的单个字符
[a-zA-Z] 匹配单个数字、字母或者下划线字符
[^ ] 匹配除去范围内的字符,就是除去括号内的,其他的都对 
范围内字符简写
\d   等价于  [0-9]  匹配单个的数字字符
\D   等价于 [^0-9]  匹配单个的非数字字符
\w   等价于[a-zA-Z0-9_ ] 匹配单个数字、字母或者下划线字符
\W   等价于[^a-zA-Z0-9_] 匹配非单个数字、字母或者下划线字符
空白字符
\s   匹配任意的空白字符  空格、回车、换行(\n)、tab键
\S   匹配任意的非空白字符

注意:简写都是反斜杠

锚字符
^   行首匹配
$   行尾匹配
^ $  必须以同一内容开头或结尾   
重复字符
 注:x代表任意的单个字符或者任意的单个元字符
 x+   至少匹配一个x字符
 x?   匹配0个或者1个x字符
 x*   匹配任意个x字符
 x{m,n}  匹配至少m个,至多n个x字符
 x{n}   匹配n个x字符
 (xyz)   凡是通过小括号括起来的多个字符,当做一个字符进行处理
替代字符
  |    讲多个字符连起来   类似于或运算
这都是啥跟啥啊,你一定很懵吧,稳住,咱们即将迎来“真香定律”!

在这里插入图片描述

创建正则

1.通过new声明
2.省略new声明
3. 常量赋值声明

 var box = new RegExp("hello", "gi");//通过new声明
 var box = RegExp("hello", "gi");//省略new声明
 var box = /hello/gi;//直接常量赋值
 //可以传入两个参数:
  修饰符(没有先后顺序)
      i  忽略大小写
      g  全局匹配
      m  换行匹配

正则方法

test

格式:正则.test(字符串);
功能:在字符串中匹配正则是否存在
返回值:如果存在返回true
如果不存在就返回false

var str = "how aRe you";
var box = /are/i;//要记住修饰符代表什么
alert(box.test(str));//输出的是true
exec

格式:正则.exec(字符串)
功能:在字符串中匹配正则是否存在
返回值:如果存在返回一个数组,数组里面存放着匹配的内容,如果不存在,返回null

var str = "how aRe you";
var box = /are/i;
alert(box.exec(str).length);
//一般这个用法不常用,记住上一个就好

支持正则的字符

math

格式:字符串 . search(正则)
功能:在字符串中匹配这个正则是否存在
返回值:如果存在,返回一个数组,数组放着,匹配到的子串

var str = "how are Are ARE you";
var box = /arex/ig;
alert(str.match(box)); //输出结果是 are,Are,ARE
search

格式:字符串.search(正则)
功能:在字符串中,查找正则表达式,第一次出现的位置
返回值:如果查找到,返回,查找到的下标
查找不到,返回-1

var str = "how ARE are you";
var box = /are/i;
alert(str.search(box)); //输出结果是 4
replace

格式:字符串.replace(正则, newStr);
功能:在字符串中找到正则,并且将他替换成新字符串。
返回值:替换成功的新字符串

var str = "how are Are ARE you";
var box = /are/ig;
var newStr = str.replace(box, "two");
alert(newStr); //输出的是 how two two two you
split

格式:字符串.split(正则)
功能:使用正则对字符串进行字符串分割
返回值:分割完的子串组成的数组。

var str = "how are Are ARE you";
var box = /are/i;
var arr = str.split(box);
alert(arr); //输出的是 how , , , you

终于到了真香时刻了,来咱们看案列

表单验证
 if(oValue.length < 6 || oValue.length > 18){
   oUsernameSpan.style.color = 'red';
   oUsernameSpan.innerHTML = "!长度应为6~18个字符";

   //2、判断首字符是否是字母
    }else if(/[^a-zA-Z]/.test(oValue[0])){
    oUsernameSpan.style.color = 'red';
    oUsernameSpan.innerHTML = "!邮件地址必需以英文字母开头";

    //3、判断所有的字符都是数字、字母和下划线组成  
  }else if(/\W/.test(oValue)){
      oUsernameSpan.style.color = 'red';
      oUsernameSpan.innerHTML = "!邮件地址需由字母、数字或下划线组成";
      }else{
      //要是上面所有的都符合条件的话,就输入下面内容
      oUsernameSpan.style.color = 'green';
      oUsernameSpan.innerHTML = '✅恭喜,该邮件地址可注册';
    }

看完这个案列后大家心里也多多少少知道怎么写了,正则的判断语法其实也没有多少,多加练习,一定能够掌握的!

关于正则的这次就先写这么多,后续会持续更新,若有不足之处,请多多指点,期待您的留言。

发布了1 篇原创文章 · 获赞 14 · 访问量 78

猜你喜欢

转载自blog.csdn.net/weixin_46377975/article/details/104458449
今日推荐