JS学习日记--正则基础语法
一、正则表达式
正则表达式是由普通字符及特殊字符组成的对字符串进行过滤的逻辑公式
创建方式
字符量的方式:
var reg = /abc/;构造函数
var reg = new RegExp(“abc”);
二、正则表达式方法
方法名 | 作用 | 返回值 |
---|---|---|
test | 检测是否有符合表达式规则的子串 | 有返回true,否则返回false |
match | 检索指定的值 | 这些值组成的数组 |
search | 查找符合规则的子串 | 第一个匹配成功的位置 |
split | 分割 | 返回数组 |
replace | 替换 | 返回替换后的值 |
exec | 将匹配成功的放到数组里 | 匹配成功的值,没有成功则返回null |
注:exec如果要全部输出,需要多次调用,一次只能输出一个
<script type="text/javascript">/*创建方法*/var reg=/abc/;//1.字面量的方式var reg=new RegExp("abc");//2.构造函数/*方法*///test方法 用来检测是否有符合表达式规则的子串,有返回true,无返回falsevar str="aabcd";console.log(reg.test(str));//修饰符 g i //g表示全局匹配//i不区分大小写//match方法 检索指定的值 返回值也是这些指定的值组成的数组var reg=/abc/ig;var str="aAbcabc";console.log(str.match(reg));//seach方法,查找符合规则的子串的位置,只返回第一个匹配的位置var reg=/abc/;var str="12abc4";console.log(str.search(reg));//split 分割 返回数组var reg=/ /;var str="good good study";console.log(str.split(reg));//replace 替换var reg=/aaa/ig;var str="aaa aaa study";console.log(str.replace(reg,"good"));//exe方法,将匹配成功的方法放到数组里,如果没有匹配成功,返回null//如果要全部输出 则需要多次调用,一次只能输出一个var reg=/good/g;var str="good good study";console.log(reg.exec(str));console.log(reg.exec(str));console.log(reg.exec(str));</script>
输出:
true
Array(2)
2
Array(3)
good good study
Array(1)
Array(1)
nul
三、正则表达式中的特殊字符
字符 | 作用 |
---|---|
. | 代表除了换行符外的所有单个字符 |
* | 重复多次匹配(0-n) |
+ | 至少一次重复匹配 |
? | 进行零次或者一次匹配 |
[ ] | 表示可以匹配到的范围 |
\w | 数字字母下划线 |
\W | 非数字字母下划线 |
\d | 表示数字 |
\D | 非数字 |
\s | 匹配空格 |
{m,n} | 至少匹配m次,最多匹配n次 |
/^ | 匹配开始 |
$/ | 匹配结束 |
() | 分组 将内容作为一个整体进行匹配 |
$1,$2 | 代表分组的元素 |
<script type="text/javascript">//. 除了换行符外的所有单个字符var reg=/g..d/gi;var str="goodg--dg/-d";console.log(reg.test(str),str.match(reg));//* 重复多次匹配,匹配任意次(0-n),只作用于前一个字符var reg=/go*d/gi;var str="goodgogod";console.log(reg.test(str),str.match(reg));//+ 至少有一次重复匹配var reg=/go+d/gi;var str="goodgdgodgoooood";console.log(reg.test(str),str.match(reg));//? 进行零次或者一次匹配var reg=/go?d/gi;var str="gdgodgood";console.log(reg.test(str),str.match(reg));//[] 表示可以匹配到的范围var reg=/[a-z]+/gi;var str="asjfij";console.log(reg.test(str),str.match(reg));//\w 代表数字字母下划线 等同于[0-9a-zA-Z_] W\非数字字母下划线var reg=/\w+/ig;var str="s4989_*";console.log(reg.test(str),str.match(reg));//\d 表示数字 \D非数字var reg=/\d+/gi;var str="1234s4";console.log(reg.test(str),str.match(reg));//\s 匹配空格var reg=/\s+/gi;var str="good good study";console.log(str.replace(reg,""));//{m,n} 至少匹配m次,至多匹配n次var reg=/go{3,6}d/ig;var str="goooodgoodgoooooood";console.log(reg.test(str),str.match(reg));// /^ 匹配开始 $/ 匹配结束var reg=/^g.*g$/gi;var str="goodgd";console.log(reg.test(str),str.match(reg));// | 或var reg=/google|baidu|yahoo/gi;var str="www.baidu.com";console.log(reg.test(str),str.match(reg));// () 分组 将内容作为一个整体进行匹配var reg=/(good){2,3}/givar str="goodgoodagood"console.log(reg.test(str),str.match(reg));console.log(RegExp.$1);//$1 $2 代表分组的元素var reg=/(.*)\s(.*)/;var str="taobao baidu";console.log(str.replace(reg,"$2 $1"));</script>
输出:
true Array(3) 0:"good" 1:"g--d" 2:"g/-d"
true Array(2) 0:"good" 1:"god"
true Array(3) 0:"good" 1:"god" 2:"goooood"
true Array(2) 0:"gd" 1:"god"
true Array(1) 0:"asjfij"
true Array(1) 0:"s4989_"
true Array(2) 0:"1234" 1:"4"
goodgoodstudy
true Array(1) 0:"gooood"
false null
true Array(1) 0:"baidu"
true Array(1) 0:"goodgood"
good
baidu taobao
四、一个小例子
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1"><title>用户名规范</title><script type="text/javascript">window.onload=function(){var oInput=document.getElementById("username");oInput.onchange=function(){var str=this.value;var reg=/^[a-zA-Z_]\w{5,14}$/;if(reg.test(str)){alert("格式正确");}else{alert("用户名由数字,字母下划线组成的 6-15位字符,且不能以数字开头");}}}</script></head><body>用户名:<input type="text" id="username" /></body>
</html>
JS学习日记--正则基础语法相关推荐
- Java学习日记1——基础认知
Java学习日记1--基础认知 学习Java阶段,如果发现不正确的描述,还请指正! 首先附上Java相关下载链接和配置教程链接 Java相关软件工具下载地址:官方下载 Java环境配置(win10配置 ...
- JS学习笔记——入门基础知识总结
JS入门基础知识总结1 前言 基础背景知识 一.产生历史: 二.特点: 三.应用方向: 四.Javascript组成: JavaScript书写使用方式 一.行内式(了解即可,项目中不使用,日常练习尽 ...
- java基本语法心得_Java学习笔记(一)——基础语法(上)
Java学习笔记(一)--基础语法(上) 软件构造 写在前面 编写Java程序时,应注意以下几点:大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的. 类名:对于所有的 ...
- Python学习日记-day1基础篇 字符 输出 注释
Python学习日记-day1基础篇 字符 输出 注释 by北栀一刺 # -*- coding: utf-8 -*- """ Spyder EditorThis is a ...
- 关于JS脚本语言的基础语法
JS脚本语言的基础语法:输出语法 alert("警告!"); confirm("确定吗?"); prompt("请输入密码");为弱 ...
- JS:JavaScript编程语言基础语法总结
JS:JavaScript编程语言基础语法总结 目录 常用基础语法 一.变量 1.声明变量var 二.语句 1.if判断语句 2.for循环语句 三.函数 1.定义一个函数 常用基础语法 consol ...
- 【Vue.js 知识量化】基础语法
Vue.js 基础语法 Vue.js 安装 插值操作 Mustache:将 data 中的文本数据插入到 HTML v-once:使元素和组件只渲染一次 v-html:解析 HTML 并展示 v-t ...
- Java学习笔记之基础语法(一)
目录 前言 一.基础语法 基础概念 运算符 数据输入Scanner 条件判断 循环 Random 二.IDEA安装与使用 IDEA项目结构介绍 IDEA中HelloWorld步骤 IDEA快捷键 前言 ...
- Go语言学习笔记—golang基础语法
视频来源:B站<golang入门到项目实战 [2022最新Go语言教程,没有废话,纯干货!]> 文章为自己整理的学习笔记,侵权即删,谢谢支持! 文章目录 golang基础语法 一.gola ...
最新文章
- Go 学习笔记(74)— Go 标准库之 unsafe
- 从电影《蝴蝶效应》中学习回溯算法的核心思想
- fmdb和mysql的区别_FMDB
- php pdo更新,php - 使用PDO和MySQL更新查询
- C++: 21---引用和指针
- 读后有感 - UI设计师必知:线框图、原型和视觉稿
- acfun html5 转换,AcFun剧场模式插件
- Spring-core-SpringFactoriesLoader类
- Symantec Backup Exec 2012修改显示语言
- 网站可行性报告范文_孝感做可行性报告本地立项范文
- 三人表决器实验报告总结_三人表决器实验报告.doc
- django CACHES
- dnf服务器老是连接中断,《dnf》老是网络连接中断怎么办 网络总是中断解决办法...
- 高通efs_了解EFS
- 大数据营销更需要消费者洞察
- PDF转换成PPT简便的方法
- web项目使用OpenOffice实现前端在线预览office文档(超详细)
- html5 图片局部马赛克,javascript - JS实现马赛克图片效果完整示例
- 运维平台权限表结构设计
- Linux Command iperf3网络测速工具
热门文章
- 二叉树的深度和广度优先
- Python内置函数、匿名函数
- Net分布式系统之五:微服务架构
- 如何在基于vue-cli的项目中,使用精灵图 css sprite
- Bug随手记----关于java.lang.IllegalStateException: The following classes could not be excluded because the
- RK3288 NFS rootfs修改和操作(已验证)
- 维图PDMS切图软件
- tp5 对接腾讯云聊天
- 设置plsql永久注册码
- SQLServer 自定义函数 日期计算月初/月末/年初/年末/季初/季末