正则表达式常用

正则表达式

正则表达式的介绍
(1)数据类型:
基本数据类型: number string boolean null undefined
复杂数据类型: Array Function Object Math Date RegExp正则表达式) String Number Boolean

(2)
Regular Expression 简写: RegExp RegEx
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

(3)正则对象的test()方法.
语法: 正则对象.test(需要检测/过滤的字符串);
返回值布尔类型.
如果 需要检测/过滤的字符串 满足当前这个正则对象的过来规则,那么就返回true,否则就返回false.

(4)如何创建正则对象?
4.1使用构造函数来创建.

  var reg1 = new RegExp(/男/);  //这个正则用来判断你 需要检测的字符串里面包含不包含男这个字.
  var result = reg1.test('志强是女的吗?是的');
  console.log(result);

4.2使用正则字面量来创建. /内容/

var reg2 = /男|女/;
var result = reg2.test('志强是nan的吗?是的');
console.log(result);
console.log(/男|女/.test('志强是男的吗?是的'));

预定义类-就是事先给他赋予了一些含义的字符

  • . [^\n\r] 除了换行和回车之外的任意字符 -----意思是含有\n\r 都是false
  • \d [0-9] 数字字符 [0123456789] ------含有数字的都是true
  • \D [^0-9] 非数字字符 -----含有非数字字符的都是false
  • \s [\f\r\n\t\v] 不可见字符 -----含有 \r回车,\n 换行," " 空格,注意""空字符串不是不可见字符,\t
  • \S [^\f\r\n\t\v] 可见字符 -----只要含有不可见字符\f\r\n\t\v就是false
  • \w [a-zA-Z0-9_] 单词字符(所有的字母数字和_) -----只要含有字母和数字和_都是true
  • \W [^a-zA-Z0-9_] 非单词字符 ----- 要含有字母和数字和_都是false
console.log(/./.test("[^\n\r]"));//true 意思是含有\n\r 都是false
console.log(/\d/.test("[0-9]"));//true



自定义类
你用test检测的字符串里面,有没有包含d这个字母。如果有就是true.

   console.log(/d/.test("123")); //false
   console.log(/d/.test("123d")); //true

你用test检测的字符串里面, 有没有包含heima,,如果有就是true.

console.log(/heima/.test("hei")); //false

或和优先级 | ()

用test检测的字符串里面,如果有hei或者有ma都是true.

  console.log(/hei|ma/.test("hei")); //true
  console.log(/hei|ma/.test("ma")); //true
  console.log(/hei|ma/.test("heima")); //true

用test检测的字符串里面,如果有heia,或者hema,那么就是true.

console.log(/he(i|m)a/.test("heima")); //false
console.log(/he(i|m)a/.test("heia")); //true
console.log(/he(i|m)a/.test("hema")); //true
console.log(/he(i|m)a/.test("heimaheima")); //false
console.log(/he(i|m)a/.test("hahahhahahema")); //true

简单类 []
简单类只代表一个字符

如果用test检测的字符串中,出现[]中的字符任意一个,就是true.

console.log(/[abc]/.test("a"));  //true
console.log(/[abc]/.test("b"));  //true
console.log(/[abc]/i.test("dddddBdddd!!!!!!")); //true

负向类 [^ ]
注意:负向类是中括号中的小尖尖.

//如果用test检测的字符串中,有 除了中括号中的内容之外的任意一个,出现一次或者一次以上,就是true
// console.log(/[^abc]/.test('a')); //false

范围类
[]他是一个简单类,简单类代表的是一个字符,如果检测的字符串中,出现了中括号中的任何一个,都是true
console.log(/[abc]/.test(“a”)); //true

自定义类黑范围类结合
自定义类 - 检测的字符串里面 至少要完整的出现一次,那么就是true.
yaz ybz ycz

 console.log(/y[abc]z/.test("yabcz")); //false
 console.log(/y[abc]z/.test("yazcz")); //true

组合类

 console.log(/[^0-5][^a-g]/.test("b4")); //true
    console.log(/[^0-5][^a-g]/.test("6")); //false

负向类 [^ ] -----/^ / 边界

  1. ^ 会匹配行或者字符串的起始位置

 console.log(/^\d/.test("aaabb123ccc")); //false   

如果检测的字符串的起`始位置是数字就是true.
2, $ 会匹配行或字符串的结尾位置

 console.log(/ac$/.test("777ac")); //true

3,^$组合在一起,就表示严格匹配 只能出现一次 有且只有一次

console.log(/^男$/.test('男'));//true
console.log(/^男$/.test('男男'));//false 只能有一次

 console.log(/^bc/.test("bcbcbc")); //true 没有结尾不算严格匹配
 console.log(/bc$/.test("bcbcbc")); //true 没有开头不算严格匹配

量词
“*” 重复零次或更多 x>=0 {0,}
“+” 重复一次或更多次 x>=1 {1,}
“?” 重复零次或一次 x=(0||1) {0,1}

console.log(/^colo*r$/.test("colr")); //true
console.log(/^colo*r$/.test("color")); //true
console.log(/^colo*r$/.test("coloor")); //true
console.log(/^colo+r$/.test("colr")); //false
console.log(/^colo+r$/.test("color")); //true
console.log(/^colo+r$/.test("coloor")); //true  
console.log(/^colo?r$/.test("colr")); //true
console.log(/^colo?r$/.test("color")); //true
console.log(/^colo?r$/.test("coloor")); //false

量词
{n} n次 x=n
{n,} 重复n次或更多 x>=n
{n,m} 重复出现的次数比n多但比m少 n<=x<=m

console.log(/^colo{2}r$/.test("color"));//false         
console.log(/^colo{2}r$/.test("coloor"));//true
console.log(/^colo{2,}r$/.test("color"));//false
console.log(/^colo{2,}r$/.test("coloor"));//true
console.log(/^colo{2,}r$/.test("colooor"));//true
console.log(/^colo{2,3}r$/.test("coloor"));//true   
console.log(/^colo{2,3}r$/.test("colooor"));//true

仅作了解
分组提取

   //提取email中的每一部分
     var str = "123123@xx.com.cn,penglin@qq.com.cn";
     var reg = /(\w+)@(\w+)\.(\w+)(\.\w+)?/g;
     var array = str.match(reg);
   //获取分组的数据  ()是分组
    console.log(RegExp.$1);
    console.log(RegExp.$2);
    console.log(RegExp.$3);
    console.log(RegExp.$4);
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
智慧校园建设方案旨在通过融合先进技术,如物联网、大数据、人工智能等,实现校园的智能化管理与服务。政策的推动和技术的成熟为智慧校园的发展提供了基础。该方案强调了数据的重要性,提出通过数据的整合、开放和共享,构建产学研资用联动的服务体系,以促进校园的精细化治理。 智慧校园的核心建设任务包括数据标准体系和应用标准体系的建设,以及信息化安全与等级保护的实施。方案提出了一站式服务大厅和移动校园的概念,通过整合校内外资源,实现资源共享平台和产教融合就业平台的建设。此外,校园大脑的构建是实现智慧校园的关键,它涉及到数据中心化、数据资产化和数据业务化,以数据驱动业务自动化和智能化。 技术应用方面,方案提出了物联网平台、5G网络、人工智能平台等新技术的融合应用,以打造多场景融合的智慧校园大脑。这包括智慧教室、智慧实验室、智慧图书馆、智慧党建等多领域的智能化应用,旨在提升教学、科研、管理和服务的效率和质量。 在实施层面,智慧校园建设需要统筹规划和分步实施,确保项目的可行性和有效性。方案提出了主题梳理、场景梳理和数据梳理的方法,以及现有技术支持和项目分级的考虑,以指导智慧校园的建设。 最后,智慧校园建设的成功依赖于开放、协同和融合的组织建设。通过战略咨询、分步实施、生态建设和短板补充,可以构建符合学校特色的生态链,实现智慧校园的长远发展。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值