正则表达式基础

简介: 正则表达式基础

// 根据正则 \W 查找[a-z][A-Z][0-9] 以外


let str = 'asgdas-awja.ugsdiuaf'
 let reg = new RegExp(/\W/)
 document.write(str.split(reg))

// 根据正则查找符合条件的字符串

// * = {0,}

// + = {1,}

// ? = {0, 1}


let str = 'cccainiao'
 let reg = /c{2,3}?/
 let result = reg.exec(str)
 document.write(result)

// 正则匹配开头结尾  ^(开头)  $(结尾)


let str = '1abc2'
  let reg = /^1/
  let reg2 = /2$/
  let result = reg.exec(str)
  let result2 = reg2.exec(str)
  document.write(result, '<br />')
  console.log(result)
  document.write(result2)
  console.log(result2)

// 匹配除了 /n 换行符以外的所有字符  /./,  如果需要查询全部字符,需在后面加+


let str = 'cainiao';
let reg = /.+/;
let result = reg.exec(str);
document.write(result);

// 正则表达式中的或  |


let str = 'ab7cdefg';
// 匹配开头为*后面,除了/n换行符以外的全部字符 (.+)
let reg = /^a.+/;
let result = reg.exec(str);
document.write(result);

// 开头必须是字母, 后面可以是字母或者下划线


let str = 'as15ce1cf51ev';
let reg = /^[a-zA-Z][a-zA-Z0-9_]+/;
let result = reg.exec(str);
document.write(result);

// [^*] 表示非


let str = '1abcdef';
let reg = /^[^abc].+/;
let result = reg.exec(str);
document.write(result);

// \b 边界 \B 非边界


let str = '1abcdef';
let reg = /\b1.+/;
// let str = 'cac'
// let reg = /\Da.+/
let result = reg.exec(str);
document.write(result);

// \d 数字 \D 非数字


let str = 'ghd1'
let reg = /\d/;
// let str = '2abcdef';
// let reg = /\D.+/
let result = reg.exec(str);
document.write(result);

// \f匹配换页符,\n匹配换行符,\r匹配回车,\t匹配制表符,\v匹配垂直制表符

// \s 匹配单个空格,等同于[\f\n\r\t\v]

// \S 表示非空格字符

// \w 代表单词字符,等同于[a-zA-Z0-9_]

// \W 表示非单词字符,等同于[^a-zA-Z0-9_]

// /pattern/g  全局匹配

// /pattern/i  不区分大小写

// /pattern/m  作用: 修改^ 和 $ 的作用, 让它们分别表示行首和行尾


// 正则反向引用 \w 返回a, 此时的\1是反向引用,它表示的是第一个括号内的字正则表达式匹配的内容,第一个括号里面的(\w)匹配了a,因此\1就同样表示a了,在余下的字符串里自然找不到a了


let str = 'abc';
 let reg = /(\w)\1/;
 let result = reg.exec(str);
 document.write(result);

// 不记录子正则表达式的匹配结果 /?:pattern/ 忽略  

---使用反向引用\1返回null, ?:不记录匹配内容---


let reg = /^(?:b|c).+/;
let str='bbs.blueidea.com';
let result = reg.exec(str);
document.write(result);

// 正向预查 例子: cainiao1, cainiao2, /cainiao(?=2)/,就可查询到cainiao2


let str = 'cainiao2';
let reg = /cainiao(?=2)/;  // ?=并不参与真正的匹配,只是检查一下后面的字符是否符合规则
let result = reg.exec(str);
document.write(result);

// 正向预查取反 /?!pattern/, 正好和 ?= 相反, 要求字符串后面不能为某个pattern

// 字符正确返回 null, 字符不符合要求返回 idea


let str = 'ideastr';
let reg = /idea(?!str)/;
let result = reg.exec(str);
document.write(result);

// 判断字符串是否全是数字可以用 /^\d*\d$/, 也可以用 /^\d[0-9]*%/表示

相关文章
|
Linux 网络安全 开发工具
|
10月前
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
308 5
|
关系型数据库 Linux 块存储
CentOS7.5 手动部署ceph
1  环境配置 1.1  设备列表   功能 主机名 IP mon node1 192.168.1.10 mon node2 192.168.
9746 0
|
机器学习/深度学习 Python
独家 | 教你使用简单神经网络和LSTM进行时间序列预测(附代码)
作者基于波动性标准普尔500数据集和Keras深度学习网络框架,利用python代码演示RNN和LSTM RNN的构建过程,便于你快速搭建时间序列的预测模型。
6399 0
|
Shell 应用服务中间件 nginx
|
JSON 数据可视化 API
FastAPI-Amis-Admin: 一个拥有高性能,高效率,易拓展的fastapi管理后台框架
fastapi-amis-admin是一个拥有高性能,高效率,易拓展的fastapi管理后台框架. 启发自Django-Admin,并且拥有不逊色于Django-Admin的强大功能.
4761 1
|
XML 移动开发 前端开发
推荐这几个流程图设计器web开发方案
前沿:一个流程图设计器需要什么?一个是图的绘制能力、基于svg或者canvas来绘制各种形状的节点(矩形、圆形、多边形)以及线,一个是图与图之间的交互包括拖拽,节点之间的连线等,最后是画布面板的便捷性,其中包括:比如ps中的网格功能、对其线、步骤回撤、画布的可伸缩、快捷按钮等等,那前端社区有啥开源解决方案,方便我们快速开发一个属于自己的流程图设计器?
1958 0
推荐这几个流程图设计器web开发方案
|
搜索推荐 网络协议 Java
一个低级错误引发Netty编码解码中文异常
最近在调研Netty的使用,在编写编码解码模块的时候遇到了一个中文字符串编码和解码异常的情况,后来发现是笔者犯了个低级错误。这里做一个小小的回顾。
722 0
一个低级错误引发Netty编码解码中文异常
powerdesigner导出来的sql执行失败
powerdesigner导出来的sql执行失败,这时我们应该如何做?本文带大家一起解决这个问题。
836 0
powerdesigner导出来的sql执行失败