<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
hello,this world
</div>
<script>
let x = "aacccccdada"
let a = "aa"
let res = eval(`/${a}/`).test(x)//eval执行字符串中的js代码
console.log(res);
//使用new RegExp来进行比对
let reg = new RegExp('d', 'g')
console.log(reg.test(x));
//实例使用
let con = prompt('请输入要替换的内容')
let rep = new RegExp(con, 'g')
let div = document.querySelector('div')
div.innerHTML = div.innerHTML.replace(rep, "@" /* search => {
return `<span style="color:red">${search}</span>`
} */)
//综合,电话号码的格式
let tele = '020-8473730';
console.log(/(020|010)\-\d{7,8}/.test(tele));
//原子表[]和原子组()
let num = '132214214i210';
console.log(/[123]/.test(num));//123中只要有一个数字存在就可以
console.log(/(12|23)/.test(num));//必须要求有12或者23
//转义
let float = 23.23
let result = new RegExp("\\d+\\.\\d+");
console.log(result.test(float));
let wz = "https://www.baidu.com"
console.log(/https?:\/\/\w+\.\w+\.\w+/.test(wz));
//字符边界约束,起始边界^,结束边界$
let border = "wer234jj";
console.log(/\d/.test(border));//没有边界,意味着只要字符串中存在数字就符合
let border2 = "2222"
console.log(/^\d+$/.test(border2));
//元字符,空白/s
let dhb = `
谭是:010-88888888,ddd:020-0000000`;
console.log(dhb.match(/[^-\d:,\s]+/g)/* .join("") */);
// \w字符,数字以及下划线,\W字符,数字以及下划线除此之外的
let ww = "@www333_##11"
console.log(ww.match(/[\w]+/g));
//.除了\n之外的任何单个字符
let dd = "www.http@sss"
console.log(dd.match(/\w+.\w+.\w+/));
//所有字符[\d\D][\s\S][\w\W]
//不区分大小写i
//多行匹配m//.replace("\n", "")
let name = `
#1 ming,17 #
#2 zhao,18 #
#3 li,29 #`;
let all = name.match(/^\s*#\d+\s+.+\s+#$/gm).map(item => {
let x = item.replace(/\s*#\d+\s*/, '').replace(/\s*#/, '');
[name, age] = x.split(',');
return { name, age }
})
console.log(all);
//匹配字符,中文,标点符号[L]
let newDot = '2021年9月19日.3397!name="ming"';
console.log(newDot.match(/\p{L}/gu));//匹配字符包括汉字,/u类似找到utF-8类型的字符
console.log(newDot.match(/\p{P}/gu));//匹配标点符号
console.log(newDot.match(/\p{sc=Han}/gu));//匹配中文
//控制位置
let quanju = /\w/g
console.log(quanju.exec(newDot));
console.log(quanju.lastIndex);
console.log(quanju.exec(newDot));//使用此方法可以获取到结果以及对应的索引号
//配合上方的位置检索,更加有效率,\y
//原子表配合\1,\2等等,指的是值跟第几个原子表的值一样
let nowtoday = '2021/9/17'
console.log(nowtoday.match(/\d{4}([-\/])\d{1,2}\1\d{1,2}/));
//[()]括号放到原子表里面不会解析,指的就是(),但是放在[]外面指的是原子组
//\s忽略换行符
//[/*****/,/*****/]使用此方法可以同时验证多个正则表达式
//全局匹配matchAll,exec配合while()可以实现全局匹配
//用到的函数 search可以查找到目标的索引值,match可以查找到目标的值,split可以进行分割
//$&,$`,$'
let newzifu = "=ddsd++"
console.log(newzifu.replace(/ddsd/, "$'"));//将所查找的内容替换成它后面的字符串
console.log(newzifu.replace(/ddsd/, "$&"));//将所查找的内容替换成它本身
console.log(newzifu.replace(/ddsd/, "$`"));//将所查找的内容替换它前面的字符串
//$2,第二个原子组,类似于之前在正则表达式种的\1\2
//?<xxxx> $<xxx>是原子组的别名
//?=断言匹配,类似于条件
let ggg = '原来new原来dddd'
console.log(ggg.replace(/原来(?=dddd)/, 'B'));//后面的是dddd,这个类似于条件
//?<=xx 前面是xx,?<!xx 前面不是xx
//?!xxx,不是xxx
</script>
</body>
</html>
没有合适的资源?快使用搜索试试~ 我知道了~
前端 javascript es9语法学习
共2个文件
html:2个
需积分: 0 0 下载量 71 浏览量
2023-12-25
15:11:35
上传
评论
收藏 3KB RAR 举报
温馨提示
前端 javascript es9语法举例学习 包括rest和正则表达式
资源推荐
资源详情
资源评论
收起资源包目录
es9.rar (2个子文件)
es9
Rest.html 517B
正则扩展.html 4KB
共 2 条
- 1
资源评论
命不息学不止
- 粉丝: 13
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功