欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Js:正则表达式及其方法

Js:正则表达式及其方法

2025/2/5 23:54:04 来源:https://blog.csdn.net/Y1914960928/article/details/145139255  浏览:    关键词:Js:正则表达式及其方法

一、正则表达式的介绍:

1、含义:

正则表达式用来定义一个规则,是Js中的一个对象。

2、作用:

① 计算机可以检查一个字符串是否符合规则

② 将字符串中符合规则的内容进行提取

二、正则表达式的创建:

1、 通过构造函数创建:new RegExp(规则, 标识)

标识 / 匹配模式:

(1)匹配模式的数据类型:字符串
(2)匹配模式取值:
i:忽略大小写
g:全局匹配模式

var reg = new RegExp('a','i');
consoole.log(reg)  // /a/i

② 使用场景:动态创建规则

③ 注意事项:

当使用转义字符(\)的时候,需要写两个 \\

var reg = new RegExp('\\w','i');
consoole.log(reg)  // /\w/i

2、 字面量创建:var 变量 = /规则/标识

var reg = /a/i ;
consoole.log(reg)  // /a/i

三、正则表达式的语法:

1、 的表示:

| :表示整体的或

// 匹配ab或c或de的字符串
let reg = /ab|c|de/;
let str = 'c'
let result = reg.test(str)
console.log(result) // true

[] :表示字符集 – 只要有某个字符就行

// 匹配任意包含a或b或c或d的字符串
let reg = /[abcd]/;
let str = 'cd'
let result = reg.test(str)
console.log(result) // true

2、 任意的小写字母:

[a-z]

// 匹配任意包含a到z之间的内容
let reg = /[a-z]/;
let str = 'c'
let result = reg.test(str)
console.log(result) // true

/[a-z]/i

// 匹配任意忽略大小写的包含a到z之间的内容
let reg = /[a-z]/i;
let str = 'H'
let result = reg.test(str)
console.log(result) // true

2、 任意的大写字母:

[A-Z]

// 匹配任意包含A到Z之间的内容
let reg = /[A-Z]/;
let str = 'c'
let result = reg.test(str)
console.log(result) // false

/[A-Z]/i

// 匹配任意忽略大小写的包含A到Z之间的内容
let reg = /[A-Z]/i;
let str = 'c'
let result = reg.test(str)
console.log(result) // true

3、 任意字母:[a-zA-Z]

// 匹配任意字母
let reg = /[a-zA-Z]/;
let str = 'cfff'
let result = reg.test(str)
console.log(result) // true

4、任意数字:

[0-9]

// 匹配任意数字
let reg = /[0-9]/;
let str = '123'
let result = reg.test(str)
console.log(result) // true

\d

5、除了XXX:[^ ]

// 匹配任意除了0到9之外的内容
let reg = /[^0-9]/;
let str = '111ccc'
let result = reg.test(str)
console.log(result) // true

6、匹配除了任意的数字之外的:

[^0-9]

\D

7、除了换行符之外的任意字符:.

// 匹配除了换行符之外的任意字符
let reg = /./;
let str = '\n'
let result = reg.test(str)
console.log(result) // false

8、转义字符:\

// 匹配.
let reg = /\./;
let str = 'ab.c'
let result = reg.test(str)
console.log(result) // true

9、匹配任意的字母、数字、下划线:

\w

[A-z0-9_]

10、匹配除了任意的字母、数字、下划线之外的任意内容:

\W

[^A-z0-9_]

11、匹配空格:\s

12、除了空格之外的任意内容:\S

13、单词边界的任意内容:\b

14、除了单词边界之外的任意内容:\B

var reg = /\bchild\b/; // 查找child这个单词,而不是children…

四、正则表达式的方法:

1、 通过正则表达式检查一个字符串是否符合规则:

正则表达式.test(字符串):符合返回 true

// 该正则表达式用来 判断当前字符串是否含有 a
let reg = new RegExp('a', 'i');
let str = 'abc';
let result = reg.test(str);
console.log(result) // true

2、将一个字符串拆分为一个数组:字符串.split(正则表达式)

/**  split:* 		- 可以将一个字符串拆分为一个数组*      - 可以传一个 正则表达式 作为参数,这样会根据正则表达式去拆分字符串。*      - 即使不指定全局匹配,也会全部拆分。*/var str = 'a1b2c3d4';var result = str.split(/[A-z]/); // 根据任意字母拆分字符串

在这里插入图片描述

3、搜索字符串中是否含有指定内容:字符串.search(正则表达式)

/**  search:* 		- 可以搜索字符串中是否含有指定内容。*      - 如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到,则返回 -1。*      - 可以接收一个正则表达式作为参数,根据正则表达式来检索字符串。*      - 只会查找第一个,即使设置了全局匹配,也没有用。*/var str = 'hello abc hello aec afc';var result = str.search(/a[bef]c/); // 结果:6

4、将符合条件的内容提取出来:字符串.match(正则表达式)

/**  match:* 		- 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来。*      - 默认情况下,match只会找到第一个符合要求的内容,找到以后就停止检索。*      - 设置正则表达式的全局匹配模式,这样会匹配所有的内容。*      - 会将匹配到的内容封装到一个数组中返回。*/var str = 'a1b2c3d4ABCD';// 提取所有的字母,并将其放在数组中。var result = str.match(/[A-z]/ig); // 结果: ['a', 'b', 'c', 'd', 'A', 'B', 'C', 'D']

5、内容替换:字符串.replace(正则表达式)

/**  replace:* 		- 可以将字符串中的内容替换为指定内容。*      - 需要两个参数,第一个参数是被替换的内容(可以接收一个正则表达式作为参数),第二个参数是新的内容。*      - 默认只会替换第一个。*/var str = 'a1b2a3d4ABaD';var result = str.replace('a', '(●ˇ∀ˇ●)'); // 结果: '(●ˇ∀ˇ●)1b2a3d4ABaD'

五、量词:设置内容出现的次数

/**  量词:* 		- 通过量词可以设置一个内容出现的次数。*      - 量词只对它前边的一个内容起作用。*      - {n} 出现n次*      - {m,n} 出现m-n次*      - {m,} 出现m次以上*      -  + 至少出现一次,相当于{1,}*      -  * 出现0次或者多次,相当于{0,}*      -  ? 出现0次或者1次,相当于{0,1}*/var reg = /a{5}/;  // 出现5次的连续的avar result = reg.test('aaaaabc'); // 结果: true
/**      -  ^ 表示开头*      -  $ 表示结尾*      -  ? 出现0次或者1次,相当于{0,1}*/var reg = /^a/;  // 匹配开头的avar reg2 = /a$/;  // 匹配结尾的a// 如果在正则表达式中同时使用^和$,则要求字符串必须完全符合正则表达式。var reg3 = /^a$/;var result = reg3.test('a'); // 结果: truevar reg4 = /^a|a$/; // 以a开头或者以a结尾

六、 常用的正则:

1、去除开头和结尾的空格:

var reg = /^\s+|\s+$/g
var str = "       hell    o       "
str.replace(reg,"")  // 结果:hell    o

在这里插入图片描述

2、只允许输入正数(包含小数):

onkeyup="value= (value.replace(/[^.0-9]/,'').replace(/.*?(\d+\.?\d*).*/g,'$1')).replace(/^0+/,'0')"

3、只允许输入正整数:

/[^\d{1,}|\d{1,}]/g

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com