JavaWeb__正则表达式

目录

  • [1. 正则表达式简介](#1. 正则表达式简介)
  • [2. 正则表达式体验](#2. 正则表达式体验)
    • [2.1 验证](#2.1 验证)
    • [2.2 匹配](#2.2 匹配)
    • [2.3 替换](#2.3 替换)
    • [2.4 全文查找](#2.4 全文查找)
    • [2.5 忽略大小写](#2.5 忽略大小写)
    • [2.6 元字符使用](#2.6 元字符使用)
    • [2.7 字符集合的使用](#2.7 字符集合的使用)
    • [2.8 常用正则表达式](#2.8 常用正则表达式)

1. 正则表达式简介

正则表达式是描述字符模式的对象。正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。

  • 语法
javascript 复制代码
var patt=new RegExp(pattern,modifiers);
或者更简单的方式:
var patt=/pattern/modifiers; 
  • 修饰符

  • 方括号

  • 元字符

  • 量词

  • RegExp对象方法

  • 支持正则的String的方法

2. 正则表达式体验

2.1 验证

注意:这里是使用正则表达式对象来调用方法

javascript 复制代码
// 创建一个最简单的正则表达式对象
var reg = /o/;
// 创建一个字符串对象作为目标字符串
var str = 'Hello World!';
// 调用正则表达式对象的test()方法验证目标字符串是否满足我们指定的这个模式,返回结果true
console.log("/o/.test('Hello World!')="+reg.test(str));

2.2 匹配

javascript 复制代码
// 创建一个最简单的正则表达式对象
var reg = /o/;
// 创建一个字符串对象作为目标字符串
var str = 'Hello World!';
// 在目标字符串中查找匹配的字符,返回匹配结果组成的数组
var resultArr = str.match(reg);
// 数组长度为1
console.log("resultArr.length="+resultArr.length);

// 数组内容是o
console.log("resultArr[0]="+resultArr[0]);

2.3 替换

注意:这里是使用字符串对象来调用方法。

javascript 复制代码
// 创建一个最简单的正则表达式对象
var reg = /o/;
// 创建一个字符串对象作为目标字符串
var str = 'Hello World!';
var newStr = str.replace(reg,'@');
// 只有第一个o被替换了,说明我们这个正则表达式只能匹配第一个满足的字符串
console.log("str.replace(reg)="+newStr);//Hell@ World!

// 原字符串并没有变化,只是返回了一个新字符串
console.log("str="+str);//str=Hello World!

2.4 全文查找

如果不使用g对正则表达式对象进行修饰,则使用正则表达式进行查找时,仅返回第一个匹配;使用g后,返回所有匹配。

javascript 复制代码
// 目标字符串
var targetStr = 'Hello World!';

// 没有使用全局匹配的正则表达式
var reg = /[A-Z]/;
// 获取全部匹配
var resultArr = targetStr.match(reg);
// 数组长度为1
console.log("resultArr.length="+resultArr.length);
// 遍历数组,发现只能得到'H'
for(var i = 0; i < resultArr.length; i++){
  console.log("resultArr["+i+"]="+resultArr[i]);
}

对比

javascript 复制代码
// 目标字符串
var targetStr = 'Hello World!';
// 使用了全局匹配的正则表达式
var reg = /[A-Z]/g;
// 获取全部匹配
var resultArr = targetStr.match(reg);
// 数组长度为2
console.log("resultArr.length="+resultArr.length);
// 遍历数组,发现可以获取到"H"和"W"
for(var i = 0; i < resultArr.length; i++){
  console.log("resultArr["+i+"]="+resultArr[i]);
}

2.5 忽略大小写

javascript 复制代码
//目标字符串
var targetStr = 'Hello WORLD!';

//没有使用忽略大小写的正则表达式
var reg = /o/g;
//获取全部匹配
var resultArr = targetStr.match(reg);
//数组长度为1
console.log("resultArr.length="+resultArr.length);
//遍历数组,仅得到'o'
for(var i = 0; i < resultArr.length; i++){
  console.log("resultArr["+i+"]="+resultArr[i]);
}

对比

javascript 复制代码
//目标字符串
var targetStr = 'Hello WORLD!';
//使用了忽略大小写的正则表达式
var reg = /o/gi;
//获取全部匹配
var resultArr = targetStr.match(reg);
//数组长度为2
console.log("resultArr.length="+resultArr.length);
//遍历数组,得到'o'和'O'
for(var i = 0; i < resultArr.length; i++){
  console.log("resultArr["+i+"]="+resultArr[i]);
}

2.6 元字符使用

javascript 复制代码
var str01 = 'I love Java';
var str02 = 'Java love me';
// 匹配以Java开头
var reg = /^Java/g;
console.log('reg.test(str01)='+reg.test(str01)); // false
console.log("<br />");
console.log('reg.test(str02)='+reg.test(str02)); // true
javascript 复制代码
var str01 = 'I love Java';
var str02 = 'Java love me';
// 匹配以Java结尾
var reg = /Java$/g;
console.log('reg.test(str01)='+reg.test(str01)); // true
console.log("<br />");
console.log('reg.test(str02)='+reg.test(str02)); // false

2.7 字符集合的使用

javascript 复制代码
//n位数字的正则
var targetStr="123456789";
var reg=/^[0-9]{0,}$/;
//或者 : var reg=/^\d*$/;
var b = reg.test(targetStr);//true
javascript 复制代码
//数字+字母+下划线,6-16位
var targetStr="HelloWorld";
var reg=/^[a-z0-9A-Z_]{6,16}$/;
var b = reg.test(targetStr);//true

2.8 常用正则表达式

相关推荐
下雪了 ~12 分钟前
正则表达式
前端·javascript·笔记·正则表达式
星尘库14 分钟前
正则表达式怎么控制匹配的字符串更近的一个
正则表达式
肉肉rrose15 分钟前
【Python进阶】正则表达式、pymysql模块
开发语言·数据库·mysql·正则表达式·pycharm·pymysql
~蓝桉17 分钟前
u-popup,不希望出现滚动条
java·前端·javascript
柳暗花明又一村ヾ(◍°∇°◍)ノ゙1 小时前
python 正则表达式
python·正则表达式·easyui
空白诗1 小时前
【JavaScript 算法】树的遍历:前序、中序与后序
开发语言·javascript·算法·
鱼仰泳2 小时前
JS+CSS特效:HTML+JS+CSS 实现精致的带二级菜单的头部菜单
javascript·css·html
某公司摸鱼前端3 小时前
uniapp 开发 App 对接官方更新功能
前端·javascript·vue.js·uni-app
二七狂人3 小时前
uniapp动态计算并设置元素高度
前端·javascript·css·uni-app·vue
程序员-张师傅3 小时前
javascript面试题、练习题
开发语言·javascript·ecmascript