js课程 4-12 js中正则表达式如何使用
js课程 4-12 js中正则表达式如何使用
一、总结
一句话总结:
1、js正则表达式手册取哪里找?
w3cschool或者菜鸟教程->找到js正则表达式->完整的RegExp参考手册
这手册上面的资料并不是特别全,比如向后引用就没有
2、js中支持正则表达式的String对象的方法有几个?
只有四个,只有四个
| 方法 | 描述 | FF | IE |
|---|---|---|---|
| search | 检索与正则表达式相匹配的值。 | 1 | 4 |
| match | 找到一个或多个正则表达式的匹配。 | 1 | 4 |
| replace | 替换与正则表达式匹配的子串。 | 1 | 4 |
| split | 把字符串分割为字符串数组。 | 1 | 4 |
3、正则修饰符中的m有什么用?
执行多行匹配,也就是把一行里面带\n的看做多行,用于比如取每行的行首这样的操作。
26 str='linux and php and 2 and 3 and 20 and linkx and\nlinox and linax and LINUX and Php and paaaaaaaaaaap and pbp is andp2p and\nlinxx is lamp and p3p';
27
28 arr=str.match(/^lin.x/igm);
29
30 alert(arr);
4、正则总共有哪三类东西?
a、元字符
b、量词
c、修饰符
5、\b单词边界是什么意思?
单词边界一般是空格换行,加了单词边界就能匹配到哪些单词
6、匹配中文字符用什么?
\u***到\u***
| \uxxxx | 查找以十六进制数 xxxx 规定的 Unicode 字符。 |
7、.*和.*?的区别是什么,php中什么修饰符实现这样加?的功能?
.* 匹配很多
.*? 精确匹配
php中可以用?号,也可以用修饰符u
8、js中正则中的向后引用怎么使用?
正则表达式加圆括号分组,后面用$加数字取分组
二、js中正则表达式如何使用
1、相关知识
正则表达式:
1.修饰词
i 忽略大小写
g 全部匹配
m 把\n识别为多行
2.中括号
[abc] 中括号中的任意一个字符
[^abc] 除了中括号中的任意一个字符
(linux)|(php) 1.linux或php单词 2.可实现向后引用$1(replace替换时)
3.元字符
. 任意一个字符
\w 任意一个字母、数字或下划线
\W 任意一个非字线、数字和下划线
\d 任意一个数字
\D 任意一个非数字
\s 任意一个空格
\S 任意一个非空格
\b 单词边界
\B 非单词边界
\n 代表换行符
4.量词
+ 1个或多个
* 任意多个
? 1个或0个
{3} 3个
{3,5} 3个到5个
{3,} 3个以上
^ 行首
$ 行末
?=a 后面紧挨a的
?!a 后面不紧挨a的
4.js中使用正则的字符串对象的方法
search();
match();
replace();
split();
5.正则实例
1)匹配以139开头的电话号码
2)匹配邮箱格式
3)高级替换功能
2、代码
m可以把反斜线n识别为多行
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
<style>
*{
font-family: 微软雅黑;
}
.hcls{
background: #ccc;
} .hcls:hover,h2:hover{
background: #999;
} </style>
</head>
<body>
<h1>aaaaaaaaaaaaaaaaaa</h1>
</body>
<script>
//正则表达式 str='linux and php and 2 and 3 and 20 and linkx and\nlinox and linax and LINUX and Php and paaaaaaaaaaap and pbp is andp2p and\nlinxx is lamp and p3p'; arr=str.match(/^lin.x/igm); alert(arr);
</script>
</html>
$向后引用实现高级替换
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
<style>
*{
font-family: 微软雅黑;
}
.hcls{
background: #ccc;
} .hcls:hover,h2:hover{
background: #999;
} </style>
</head>
<body>
<h1>aaaaaaaaaaaaaaaaaa</h1>
</body>
<script>
//正则表达式 date='2016/05/11';
//2016-05-11 time=date.replace(/(\d+)\/(\d+)\/(\d+)/g,'$1-$2-$3'); alert(time);
</script>
</html>
js课程 4-12 js中正则表达式如何使用的更多相关文章
- js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么
js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么 一.总结 一句话总结:js中是对象点方法的形式,这些方法都是对象的方法,而在php.java中却不是这样. 1.j ...
- js课程 1-2 js概念
js课程 1-2 js概念 一.总结 一句话总结:js标签元素也是js对象,有属性和方法,方法就是事件,属性就是标签属性,可以直接调用. 1.js中如何获取标签对象? getElement获取的是标 ...
- JavaScript学习12 JS中定义对象的几种方式
JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...
- JavaScript学习12 JS中定义对象的几种方式【转】
avaScript学习12 JS中定义对象的几种方式 转自: http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. ...
- php课程 1-3 web项目中php、html、js代码的执行顺序是怎样的(详解)
php课程 1-3 web项目中php.html.js代码的执行顺序是怎样的(详解) 一.总结 一句话总结:b/s结构 总是先执行服务器端的先.js是客户端脚本 ,是最后执行的.所以肯定是php先执行 ...
- JS和PHP和JAVA的正则表达式的区别(java没有分解符,java中的转义字符是\\)
JS和PHP和JAVA的正则表达式的区别(java没有分解符,java中的转义字符是\\) 一.总结 js正则:var patrn=/^[0-9]{1,20}$/; php正则:$pattern='/ ...
- vue.js+webpack在一个简单实例中的使用过程demo
这里主要记录vue.js+webpack在一个简单实例中的使用过程 说明:本次搭建基于Win 7平台 Node.js 安装官网提供了支持多种平台的的LTS版本下载,我们根据需要来进行下载安装.对于Wi ...
- js课程 4-11 表格如何实现隔行换色
js课程 4-11 表格如何实现隔行换色 一.总结 一句话总结:表格奇数行和偶数行判断,赋予不同的样式. 1.表格如何隔行换色? 表格奇数行和偶数行判断,赋予不同的样式. 21 <script& ...
- js课程 3-9 js内置对象定时器和超时器怎么使用
js课程 3-9 js内置对象定时器和超时器怎么使用 一.总结 一句话总结:定时器: 1.定义 sobj=setInterval(func,1000); 2.清除 cl ...
随机推荐
- CentOS6.4安装Docker
首先,须要安装EPEL仓库 # wget http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm # rpm -ivh e ...
- Redisclient连接方式Hiredis简单封装使用,连接池、屏蔽连接细节
工作须要对Hiredis进行了简单封装,实现功能: 1.API进行统一,对外仅仅提供一个接口. 2.屏蔽上层应用对连接的细节处理: 3.底层採用队列的方式保持连接池,保存连接会话. 4.重连时採用时间 ...
- Excel的版本
https://en.wikipedia.org/wiki/Microsoft_Excel 取自维基百科,需要特别注意的是,从v12开始,有很大的改变.后缀名从xls变为xlsx Versions 5 ...
- single-page关于vue-router
最近复习了vue,项目实战前有练手,做一个简单的单页面应用. 1.router-view就是我们渲染的组件,router-view被包裹在一个div中,一旦路由跳转,router-view就会被渲染为 ...
- Gym 100952 H. Special Palindrome
http://codeforces.com/gym/100952/problem/H H. Special Palindrome time limit per test 1 second memory ...
- Standalone 集群部署
Spark中调度其实是分为两个层级的,即集群层级的资源分配和任务调度,以及任务层级的任务管理.其中集群层级调度是可配置的,Spark目前提供了Local,Standalone,YARN,Mesos.任 ...
- RK3066 实现LED闪烁的代码分析
实现LED灯的闪烁,须要在驱动里加入一个定时器函数,详细实现涉及到了LED GPIO驱动.用户空间程序调用驱动程序. 1.首先来看LED设备驱动注冊过程,代码位于../kernel/drivers/l ...
- HDU 5371 (2015多校联合训练赛第七场1003)Hotaru's problem(manacher+二分/枚举)
pid=5371">HDU 5371 题意: 定义一个序列为N序列:这个序列按分作三部分,第一部分与第三部分同样,第一部分与第二部分对称. 如今给你一个长为n(n<10^5)的序 ...
- 用 OPENSSL 生成不同格式的密钥
用 OPENSSL 生成不同格式的密钥 密钥 key 值包括 加密算法: RSA/DSA/ECC 加密位数: 1024/2048/4096 密钥口令:加密方式有很多 在使用 DSA/ECC 加密算法时 ...
- eclipse个人插件
1.SVN eclipse markets 安装m2e-subversion.svnkit 2.maven 本地装好mvn prefences导入maven安装目录和配置 3.单元测试覆盖率 EclE ...