Js:正则表达式及正则表达式方法

① 创建正则表达式对象:

javascript 复制代码
/*
 *  语法:
 * 		var reg = new RegExp('正则表达式', '匹配模式');
 *      匹配模式(字符串类型):i --> 忽略大小写     g  --> 全局匹配模式
 */
	var reg = new RegExp('a', 'i');
	var str = 'abc';
/*
 *  正则表达式的方法:
 *    test:
 *      - 使用这个方法可以用来检查一个字符串是否符合正则表达式的规则。符合返回true
 */
	reg.test(str); // 结果: true
javascript 复制代码
// 使用字面量的方式创建正则表达式
/*
 *  语法:
 * 		var 变量 = /正则表达式/匹配模式;
 */
	var reg = /a/i ;
	var str = 'abc';
	reg.test(str); // 结果: true

② 正则语法:

  • | 表示或,例如:reg = /a|b|c|d/;
  • [] 表示或,例如:reg = /[abcd]/;
  • [a-z] 表示任意的小写字母;
  • [0-9] 任意的数字;
  • [^ ] 除了;

③ 字符串与正则表达式的方法:

javascript 复制代码
/*
 *  split:
 * 		- 可以将一个字符串拆分为一个数组
 *      - 可以传一个 正则表达式 作为参数,这样会根据正则表达式去拆分字符串。
 *      - 即使不指定全局匹配,也会全部拆分。
 */
	var str = 'a1b2c3d4';
	var result = str.split(/[A-z]/); // 根据任意字母拆分字符串
javascript 复制代码
/*
 *  search:
 * 		- 可以搜索字符串中是否含有指定内容。
 *      - 如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到,则返回 -1。
 *      - 可以接收一个正则表达式作为参数,根据正则表达式来检索字符串。
 *      - 只会查找第一个,即使设置了全局匹配,也没有用。
 */
	var str = 'hello abc hello aec afc';
	var result = str.search(/a[bef]c/); // 结果:6
javascript 复制代码
/*
 *  match:
 * 		- 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来。
 *      - 默认情况下,match只会找到第一个符合要求的内容,找到以后就停止检索。
 *      - 设置正则表达式的全局匹配模式,这样会匹配所有的内容。
 *      - 会将匹配到的内容封装到一个数组中返回。
 */
	var str = 'a1b2c3d4ABCD';
	// 提取所有的字母,并将其放在数组中。
	var result = str.match(/[A-z]/ig); // 结果: ['a', 'b', 'c', 'd', 'A', 'B', 'C', 'D']
javascript 复制代码
/*
 *  replace:
 * 		- 可以将字符串中的内容替换为指定内容。
 *      - 需要两个参数,第一个参数是被替换的内容(可以接收一个正则表达式作为参数),第二个参数是新的内容。
 *      - 默认只会替换第一个。
 */
	var str = 'a1b2a3d4ABaD';
	var result = str.replace('a', '(●ˇ∀ˇ●)'); // 结果: '(●ˇ∀ˇ●)1b2a3d4ABaD'
javascript 复制代码
/*
 *  量词:
 * 		- 通过量词可以设置一个内容出现的次数。
 *      - 量词只对它前边的一个内容起作用。
 *      - {n} 出现n次
 *      - {m,n} 出现m-n次
 *      - {m,} 出现m次以上
 *      -  + 至少出现一次,相当于{1,}
 *      -  * 出现0次或者多次,相当于{0,}
 *      -  ? 出现0次或者1次,相当于{0,1}
 */
	var reg = /a{5}/;  // 出现5次的连续的a
	var result = reg.test('aaaaabc'); // 结果: true
javascript 复制代码
/*
 *      -  ^ 表示开头
 *      -  $ 表示结尾
 *      -  ? 出现0次或者1次,相当于{0,1}
 */
	var reg = /^a/;  // 匹配开头的a
	var reg2 = /a$/;  // 匹配结尾的a
	// 如果在正则表达式中同时使用^和$,则要求字符串必须完全符合正则表达式。
	var reg3 = /^a$/;
	var result = reg3.test('a'); // 结果: true
	var reg4 = /^a|a$/; // 以a开头或者以a结尾
javascript 复制代码
/*		检查一个字符串中是否含有.
 *      - . 表示任意字符
 *      -  在正则表达式中使用 \ 作为转义字符
 *      - \.表示.
 *      - \\ 表示\
 *      - 注意:使用构造函数来创建正则表达式时,由于它的参数是一个字符串,而\是字符串中的转义字符。
 *              如果要使用\,需要使用\\ 来表示。
 */
	var reg = /\./;  // 匹配任意字符	
	var reg2 = /\\/;  // 匹配\
	var reg3 = new regExp("\\.");  // 匹配任意字符
	var reg4 = new regExp("\\\\");  // 匹配\
javascript 复制代码
/*
 *      -  \w  匹配任意的字母、数字、下划线,相当于[A-z0-9_]
 *      -  \W  匹配除了任意的字母、数字、下划线,相当于[^A-z0-9_]
 *      -  \s  匹配空格
 *      -  \S  匹配除了空格之外的
 *      -  \d  匹配任意的数字,相当于[0-9]
 *      -  \D  匹配除了任意的数字之外的,相当于[^0-9]
 *      -  \b  匹配单词边界
 *      -  \B  匹除了配单词边界
 */
	var reg = /\bchild\b/;  // 查找child这个单词,而不是children...

④ 常用正则:

(1) 去除开头和结尾的空格

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


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

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

(3) 只允许输入正整数

javascript 复制代码
/[^\d{1,}|\d{1,}]/g
相关推荐
冴羽2 分钟前
SvelteKit 最新中文文档教程(19)—— 最佳实践之身份认证
前端·javascript·svelte
拉不动的猪4 分钟前
ES2024 新增的数组方法groupBy
前端·javascript·面试
huangkaihao7 分钟前
单元测试 —— 用Vitest解锁前端可靠性
前端
archko30 分钟前
telophoto源码查看记录
java·服务器·前端
倒霉男孩34 分钟前
HTML5元素
前端·html·html5
柯南二号1 小时前
CSS 学习提升网站或者项目
前端·css
tryCbest1 小时前
Vue2-实现elementUI的select全选功能
前端·javascript·elementui
uhakadotcom2 小时前
Google Play SDK 接入指南:一步步轻松集成
javascript·面试·github
糖墨夕2 小时前
Vue中实现组织架构图功能的方案调研
前端