RegExp-1 【转义符号与字符、正则基础、修饰/元字符】

本文详细介绍了JavaScript中的转义符号和正则表达式。转义符号用于在字符串中插入特殊字符,如"""用于输出双引号。正则表达式用于字符串匹配和检索,包括忽略大小写、全局匹配和多行匹配等属性。通过实例展示了如何使用正则表达式进行匹配和声明方式,并解释了元字符和修饰符的作用,如w匹配单词字符,d匹配数字,以及[i/g/m]等修饰符的功能。
摘要由CSDN通过智能技术生成

一、转义符号与字符

(1)转义的概念

转义就是转换、改变意义

(2)转义符号与字符

转义符号: \
转义字符: \字符

(3)示例1

1、为什么会出错?
在这里插入图片描述
因为它认为是一个字符串和一个变量和一个字符串,这个变量没有用+拼接所以报语法错误

2、怎样输出中间的双引号?
在这里插入图片描述

加上在引号前面加上转义符号\

(4)特殊转义字符

转义符功能
\n换行
\r回车
\t制表符(tab,4个空格)

这些符号是给编辑系统用的,所以在html里面是显示不出来的

(5)示例2

1、为什么会报错?
在这里插入图片描述
javascript默认不允许字符串换行

应该为:
在这里插入图片描述

在这里插入图片描述
把回车和换行转义成空格

二、正则基础

(1)正则的概念

英文: RegExp(regular expression)

概念: 对字符串操作的逻辑公式

作用: 按照一定的规则匹配或检索这个规则当中指定类型的某些字符

用途:

  1. 检测用户输入是否合法
  2. 替换数据中的某些字符串
  3. 替换模板

(2)正则表达式和属性

1、正则表达式

var reg = new RegExp('test'), // 正则表达式、属性
    str = 'this is a test';

console.log(reg.test(str)) // true

以正则表达式为规则检验str里面是否包含test,包含就是true不包含就是false

要求: 字符串片段大小写默认是敏感的、连续的

2、正则属性

  • 忽略大小写:i(ignore case)
var reg = new RegExp('Test', 'i'),
    str = 'this is a test';

console.log(reg.test(str)); // true
  • 全局匹配:g(global)
var reg = new RegExp('Test', 'gi'),
    str = 'this is a test. Test is important';

console.log(str.match(reg)); // ["test", "Test"]
  • 匹配开头:^
var reg = new RegExp('^Test', 'gi'),
    str = 'this is a test. \nTest is important';

console.log(str.match(reg)); // null
  • 多行匹配:m(multi-line)
var reg = new RegExp('^Test', 'gim'),
    str = 'this is a test. \nTest is important';

console.log(str.match(reg)); // ["Test"]

(3)声明方式

1、实例化对象

var reg = new RegExp('test', 'gim')

2、字面量声明

var reg = /test/gim  // 不用写引号 不能放变量

(4)示例

var reg = /test/;

reg.a = 1;

var newReg = RegExp('test');
console.log(newReg.a); //undefined

var newReg = new RegExp('test');
console.log(newReg.a); //undefined

var newReg = new RegExp(reg);
console.log(newReg.a); //undefined

var newReg = RegExp(reg);
console.log(newReg.a); //1

没有new是拿的原来正则对象的引用

new了是拿的新的引用,生成新的正则对象

三、修饰/元字符

(1)修饰符

修饰符//正则属性功能
i(ignore case)忽略大小写
g(global)全局匹配
m(multi-line)多行匹配

(2)表达式

[]就是一个表达式,例如[123]、[abc]

[]里面放匹配字符的集合,写一个[]就匹配一位,写几个[]就连续匹配几位

表达式描述
[abc]查找方括号之间的任何字符
[^abc]查找任何不在方括号之间的字符
[0-9]查找任何从 0 至 9 的数字
[a-z]查找任何从小写 a 到小写 z 的字符
[A-Z]查找任何从大写 A 到大写 Z 的字符
[A-z]查找任何从大写 A 到小写 z 的字符
0-z查找任何从 0 至 9 的数字、从大写 a 到小写 z 的字符
0-Z查找任何从 0 至 9 的数字、从大写 A 到小写 Z 的字符
[(red|blue|green)]查找任何指定的选项

提示:

  1. 表达式里^表示取非
  2. 表达式里|表示或
  3. 小括号包裹优先匹配

(3)示例1

为什么987不会被匹配?
在这里插入图片描述
因为匹配过了就接着往下匹配,且匹配过的不会再匹配

(4)元字符

元字符: 正则使用的转义字符,一个元字符负责匹配一位

元字符描述
·查找单个字符,除了换行和行结束符。
\w查找单词字符和数字[0-9A-z_]
\W查找非单词字符和数字[^\w]
\d查找数字[0-9]
\D查找非数字字符[^\d]
\s查找空白字符[\r\n\t\v\f]
\S查找非空白字符[^\s]
\b匹配单词边界
\B匹配非单词边界[^\b]

(5)示例2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
元字符可以代表中括号,一个元字符匹配一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值