前端---正则表达式_前端定义用户输入的正则表达式_liguangjiehao的博客-程序员秘密

技术标签: 前端  

1.通过构造函数定义

var 变量名= new RegExp(/表达式/);  

2.通过直接量定义(较为常用)

var 变量名= /表达式/;

3.test() 方法
(1)正则对象方法,检测测试字符串是否符合该规则,返回true和false,参数(测试字符串)
(2)Boolean = 表达式.test("要验证的内容");

4.预定义类

 \d [0-9]       数字字符
 \D [^0-9]     非数字字符

 \s [ \t\n\x0B\f\r]  空白字符 
 \S [^ \t\n\x0B\f\r]     非空白字符

 \w [a-zA-Z_0-9]         单词字符
 \W [^a-zA-Z_0-9]       非单词字符  

5.简单类(正则://中什么特殊符号都不写,和[]的加入)

(1)、/string/.test(“string”);            必须是完整的,只多不能少
/andy/.test(“andy”)                     // true
/andy/.test(“andylv”)               // true
/andy/.test(“an”)                   // false
一句话,只要完整包含了andy 就可以了(有他就行)
(2)、
/[string]/.test(“string”);              只要包含里面的任何一个就可以
  /[andy]/.test("andy");                // true
  /[andy]/.test("an");                  // true
    /[andy]/.test("ady");               // true
    /[andy]/.test("anll");              // true
    /[andy]/.test("assd");              // true
    /[andy]/.test("ss");                    // false
 /[3aH8]/.test("ss");                   // false

6.负向类(不能是其中的整体或者一部分)
(1)中括号内,前面加个元字符^进行取反,不是括号里面的字符(一部分也不行)。
(可以不够,但是不能多)(不够和正好,返回false;多了或者没有返回true)
(2)

 console.log(/[^abc]/.test('a'));
 console.log(/[^abc]/.test('gg'));

7.范围类

console.log(/[a-z]/.test('1111'));
console.log(/[A-Z]/.test('aa'));

8.组合类
(1)用中括号匹配不同类型的单个字符。
(2)console.log(/[a-m1-5]/.test(“b”))//true

9.正则边界
(1)

^ 会匹配行或者字符串的起始位置
注:^在[]中才表示非!这里表示开始
$ 会匹配行或字符串的结尾位置
^$在一起 表示必须是这个(精确匹配)

(2)

// 边界可以精确说明要什么
console.log(/lily/.test("lilyname")); // true
console.log(/^lily$/.test("lily"));  // true
console.log(/^lily$/.test("ly"));   // false

10.量词
(1)多个字母,重复最后一个

*   (贪婪)   重复零次或更多   (>=0)
 +   (懒惰)   重复一次或更多次  (>=1)
 ?    (占有)   重复零次或一次   (0||1)  要么有 要么没有
{}  重复多少次的意思   可以有多少个  
您的银行卡密码只能是 6{6}
{n} n次  (x=n)  
{n,}    重复n次或更多  (x>=n)
{n,m} 重复出现的次数比n多但比m少 (n<=x<=m)
*        {0,}
+       {1,}
?       {0,1}

x|y    一个 |   x  或者 y(没有&,用的是,代替的)   
()提高权限,有限计算

11.replace 函数
(1)eplace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
(2)语法格式:(返回值是新字符串)
需要匹配的对象.replace(正则式/字符串,替换的目标字符)

(3)正则表达式的匹配模式支持的2个标志
g:表示全局模式(global),即模式将被应用于所有字符串而非发现一个而停止
i:表示不区分大小写(ease-insensitive)模式,在确定匹配想时忽略模式与字符串的大小写


1.正则表达式
这里写图片描述

2.创建正则表达式的方法
(1)方式 1: new RegExp(“正则表达式”,”匹配模式”);

//创建正则表达式
var reg = new RegExp("\\d{3}");
//判断
var b = reg.test("123");
document.write(b);

(2)方式 2: /正则表达式/匹配模式

var reg = /\d{3}/;

(3)两种方式的差别
方式 1 中的正则表达式需要转义,方式 2 不用,建议使用方式 2

3.匹配模式
(1)i 忽略大小写

//创建正则表达式
var reg = new RegExp("cat","i");
//以/开头,/结尾,中间的部分就是正则表达式
//var reg = /cat/i;
//判断
var b = reg.test("CAT");
document.write(b);

4.匹配上与 Java 中的不同
Java 中默认是精确匹配,而 JS 中是模糊匹配,只要包含指定的字符串就返回 true
这里写图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012360634/article/details/78969965

智能推荐

Mac OS中MySQL Workbench或者ssh闲置一段时间就卡死的解决方案_workbench卡顿_jinhuazhe2013的博客-程序员秘密

找了很久,发现两者有共同点。ssh解决方案使用网友提到的方案https://www.jianshu.com/p/b0bba7c7ac68。ssh通过修改mac上的ssh配置解决此问题:vi ~/.ssh/config// 加入这句:ServerAliveInterval 30Mysql Workbench解决方案网友在https://www.jianshu.com/p/b09e2b793844 稳重提出设置“DBMS connection read time out (in second

pycharm使用笔记2-远程连接(转)_利剑 -~的博客-程序员秘密

原文地址:https://blog.csdn.net/jinxiaonian11/article/details/70208920随着科技的发展,远程办公已经是一种趋势,远程开发能力对于每一个程序员来说都是必不可少的。有时候就算在公司,在进行开发的时候有许多的数据都是储存在服务器上的,所以在服务器上开发显得省时省力。pycharm是一个功能非常强大、外观很是漂亮,使用起来得心应手的Python开发...

用 C 语言武装 Python,让代码执行速度飞起来!_c完虐python_Abelia的博客-程序员秘密

众所周知,作为解释型语言的 Python 可不是什么超级快速的语言,但许多复杂的库函数(比如 NumPy 库)却能执行得相当快速。这主要是因为这些库的核心代码往往是用 C 或者 C++ 写好,并经过了编译,比解释执行的 Python 代码有更快的执行速度。在这篇短文中,我们将详细聊一聊如何用 C 或者 C++ 写一个 Python 模组(或软件包),内容主要参考 Python 官方文档。作为范...

hcm20170426_Ape55的博客-程序员秘密

hcm配置修改语言用户名—>设置首选项(英文下则是用户名点击后的第一个功能项)将language全部设置为中文模式(简体中文)即可框架1,员工部署2,员工发展3,激励补偿(跨功能域)产品大概介绍首页界面介绍1,Springboard (spring user interface/简称SUI):功能菜单区(每个图标代表一个功能模块),这块或者也可以称为work area,若某用户work area 功

Redis分布式锁解决抢购问题_weixin_34238642的博客-程序员秘密

废话不多说,首先分享一个业务场景-抢购。一个典型的高并发问题,所需的最关键字段就是库存,在高并发的情况下每次都去数据库查询显然是不合适的,因此把库存信息存入Redis中,利用redis的锁机制来控制并发访问,是一个不错的解决方案。首先是一段业务代码:@Transactionalpublic void orderProductMock...

Java实现静态链表_yx0628的博客-程序员秘密

静态链表其实是为了给没有指针的高级语言设计的一种实现单链表能力的方法。     静态链表是用数组描述的链表,数组的元素都是由两个数据域组成,data和cur。数组的每个下标都对应一个data和一个cur,数据域data用来存放元素,而cur相当于单链表中的next指针,存放该元素的后继在数组中的下标,cur即游标。     节点类,将data和cur结构化:/** * 节点类

随便推点

F#(FSharp)用三种方法解N皇后问题,剖析F#之美_aimeast的博客-程序员秘密

本文用三种不同的方式求解N皇后问题。通过从三个不同角度的剖析,带您认识F#,进入到F# World! 方法一:F# Code,C-Stylelet NQueens n = let a = [|for i in 0..n -> true|] //某列是否使用的标志 let b = [|for i in 0..(2 * n - 1) -> true|] //斜负方向

Bash字符串处理(与Java对照) - 21.字符串正则匹配_codingstandards的博客-程序员秘密

Bash字符串处理(与Java对照) - 21.字符串正则匹配In Java正则表达式查询String.matches方法boolean     matches(String regex)          通知此字符串是否匹配给定的正则表达式。String str = &quot;123456&quot;;String re = &quot;\\d+&quot;;if (str.matc...

内幕!5条技巧教你识别不靠谱IT外包公司,向坑骗说byebye!_计算机怎么区分外包公司_ak619的博客-程序员秘密

眼下软件市场上IT外包公司众多,我在网上随便一搜,就能搜出来好多外包公司名称,看得我是眼花缭乱。那到底哪家IT外包公司靠谱呢?这就真的难到我了。以下是我的亲身试法经验分享,助你找到靠谱IT外包公司不再难。1.公司口碑在选择外包公司时,先要了解这个公司的口碑,这是一个很关键的环节。关于口碑如何考察,我们可以先在网上查询下公司的相关资料,再向认识的人或公司询问,软件行业就这么大,公司与...

2018.12 CTF备战心得——实验吧训练营密码学(一)_WJH_kirito的博客-程序员秘密

因为12月初有一场比赛要打,平时虽然有练习但是还是缺少系统的准备,所以挖个坑督促自己好好学习。因为正在做实验吧密码学部分的题目,所以先在这里写写做题心得。1、变异凯撒      题目:加密密文:afZ_r9VYfScOeO_UL^RWUc        格式:flag{ }      首先题目明确指出这题和凯撒加密相关,拿到题之后可以先用凯撒密码工具尝试一下结果中并没有看到...

display:flex属性_displayflex属性_送你一朵小花花的博客-程序员秘密

我眼中的弹性盒子display: flex意思是弹性布局,弹性布局简直不要太好用,今天就来和大家具体讲讲它的属性和用法吧。flex的属性(以下五个属性语法都是加在父元素身上的。)一 1. flex-direction: row; 布局的排列方向 (主轴排列方向)row 默认值,显示为行。方向为当前文档水平流方向,默认情况下是从左往右。 row-reverse ...

[STATUS, MESSAGE] = regmatlabserver_CyberspaceFighter的博客-程序员秘密

[STATUS, MESSAGE] = regmatlabserver关键就是要[STATUS, MESSAGE] = regmatlabserver

推荐文章

热门文章

相关标签