- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章js正则表达式学习笔记由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
正则表达式:对字符串中的信息实现查找、替换和提取操作。(不支持注释和空白,必须写在一行内) 正则表达式的创建:包含在一对斜杠之间的字符(直接量语法) 例如:
1
|
var
pattern = /s$/;
// 创建一个正则来匹配所有以字母s结尾的字符串,并赋值给pattern
|
一 、字符类 将直接量字符单独放进方括号内就组成了字符类。 一个字符类可以匹配它所包含的任意字符。 正则表达式的字符类: [...] 方括号内的任意字符 [^...] 不在方括号内的任意字符 . 除换行符和其他Unicode行终止符之外的任意字符 \w 任何ASCII字符组成的单词 等价于[a-zA-Z0-9] \W 任何非ASCII字符组成的单词 等价于[^a-zA-Z0-9] \s 任何Unicode空白符 \S 任何非Unicode空白符 \d 任何ASCII数字 等价于[0-9] \D 任何非ASCII数字 等价于[^0-9] [\b] 退格直接量(特例) 例如:/[a,b,c]/ 表示和字母a,b,c中的任意一个都匹配 /[\s\d]/ 表示匹配任意空白字符或者数字 。
2、重复 用以表示指定字符重复的标记 正则表达式的重复字符语法: {n,m} 匹配前一项至少n次,但不超过m次 {n,} 匹配前一项n次或者更多次 {n} 匹配前一项n次 ? 匹配前一项0次或者1次,也就是前一项是可选的,等价于{0,1} + 匹配前一项1次或多次,等价于{1,} * 匹配前一项0次或多次,等价于{0,} 。
例如:/\d{2,4}/ 匹配2~4个数字 /\w{3}\d/ 精确匹配3个单词和一个可选数字 。
3、选择、分组和引用 匹配程序:从左到右,如果左边的匹配项匹配了,就自动忽略右边的匹配项(即使可以产生更好的匹配) ① | 用于分隔供选择的字符 例如: /ab|cd|ef/ 可以匹配字符串“ab”,"cd"或者“ef” /\d{3}|[a-z]{4}/ 匹配3位数字或四个小写字母 ② () 作用一:把单独项合成子表达式 作用二:在完整的模式中定义子模式 当一个正则表达式成功的和目标字符串相匹配时,可以从目标字符串中抽出和圆括号中的子模式相匹配的部分。 例如: /[a-z]+\d+/ 检索一个或多个小写字母后边跟着一个或多个数字 如果我们关心的是每个尾部的数字,则可以把模式的数字部分放到括号(/[a-z]+(\d)/),这样就可以从检索到的匹配中抽取数字了 作用三:允许在同一正则表达式的后部引入前面的子表达式 实现方法:在字符\后加一位或多位数字(这个数字指定了带圆括号的子表达式在正则表达式中的位置) 例如:\1 引用的是第一个带圆括号的子表达式 注: 位置以参与计数的左括号位置为准; 正则表达式不允许用双引号括起的内容中有单引号,反之亦然。 总结: | 选择,匹配的是该字符左边的子表达式或右边的子表达式 (...) 组合,将几个项组合成一个单元 (...?) 只组合,把项组合到一个单元,但不记忆与该组相匹配的字符 \n 和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式,组索引是从左到右的左括号数,(?: 这个形式的分组不参与索引编码 4、指定匹配的位置: 锚 : 指定匹配发生的合法位置 ^ 匹配字符串的开头 $ 匹配字符串的结尾 \b 匹配一个单词的边界 (位于\w和\W之间的位置) \B 匹配非单词边界的位置 。
5、修饰符 。
修饰符是放在//之外的,不会出现在两条/线之间 i 不区分大小写 g 全局匹配,找到所有匹配,而不是找到第一个之后就停止 m 多行匹配 。
6、 用于模式匹配的String对象的方法 方法一: search() 检索与之匹配的位置 参数:一个正则表达式 返回:第一个与之匹配的子串的起始位置,如果找不到匹配的子串,返回-1 例如
1
2
3
|
<script>
"javascript"
.search(/script/i);
//返回值为4
</script>
|
注:① 如果search()的参数不是正则表达式,则会通过RegExp构造函数将他转换成正则表达式 ② search()不支持全局检索 方法二: replace() 执行检索与替换操作 参数:第一个-->正则表达式 第二个-->要进行替换的字符串(也可是一个函数,该函数能动态的计算替换字符串) 注:① 支持g, 正则表达式中设置了g:所有与模式匹配的子串都将替换成第二个参数指定的字符串 正则表达式中没设置g:只替换所匹配的第一个子串 ② 如果第一个参数不是正则,而是一个字符串时,replace()将直接搜索这个字符串 。
例如:将所有不区分大小写的javascript都替换成大小写正确的JavaScript 。
1
2
3
4
|
<script>
var
str =
"javascript,javascript,javascript,javaScript"
;
alert(str.replace(/javascript/gi,
"JavaScript"
));
//JavaScript,JavaScript,JavaScript,JavaScript
</script>
|
方法三 : match() 参数:正则表达式 返回:由匹配结果组成的数组 支持g 实例一:
1
2
3
4
5
|
<script>
var
math =
"1 plus 2 equals 3"
.match(/\d+/g);
console.log(math);
// ["1", "2", "3"]
console.log(
typeof
math);
//object
</script>
|
实例二:
1
2
3
4
5
|
<script>
var
math =
"1 plus 2 equals 3"
.match(/\d/);
console.log(math);
// ["1", index: 0, input: "1 plus 2 equals 3"]
console.log(
typeof
math);
//object
</script>
|
注意: 给字符串的math()传入一个非全局的正则表达式: 匹配情况:只检索第一个匹配 返回值:数组 数组第一个元素:所匹配的字符串 数组第二个元素:正则表达式中用圆括号括起来的子表达式,返回的数组有两个属性-->index和input 。
方法四: split() 返回值:数组 分隔符:split()的参数 例如:
1
2
3
4
|
<script>
var
str=
"1,2,3,4,5,6,7,8"
.split(
','
);
console.log(str);
//["1", "2", "3", "4", "5", "6", "7", "8"]
</script>
|
参数是正则表达式时(可以指定分隔符,允许两边可以留任意多的空白符) 返回:用以调用它的字符串拆分为一个子字符串组成的数组 。
1
2
3
4
|
<script>
var
str=
"1,2,3,4,5,6,7,8"
.split(/\s*,\s*/);
//允许两边留任意多的空白符
console.log(str);
//["1", "2", "3", "4", "5", "6", "7", "8"]
</script>
|
7、RegExp 对象 。
RegExp()构造函数: 参数:两个字符串参数 第一个:正则表达式的主体部分(两个斜杠之间的文本) 第二个:(可选)指定正则表达式的修饰符(g,i,m这三者或这三者的组合) 注意:无论是字符串直接量还是正则表达式都使用/字符作为转译字符的前缀 例如:
1
|
var
zipCode =
new
RegExp(
'\\d{5}'
,
'g'
);
//全局匹配字符串中的5个数字,注意这里是//而不是/
|
以上就是为大家整理的关于js正则表达式学习笔记,希望对大家学习js正则表达式有所帮助.
最后此篇关于js正则表达式学习笔记的文章就讲到这里了,如果你想了解更多关于js正则表达式学习笔记的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
介绍篇 什么是MiniApis? MiniApis的特点和优势 MiniApis的应用场景 环境搭建 系统要求 安装MiniApis 配置开发环境 基础概念 MiniApis架构概述
我正在从“JavaScript 圣经”一书中学习 javascript,但我遇到了一些困难。我试图理解这段代码: function checkIt(evt) { evt = (evt) ? e
package com.fastone.www.javademo.stringintern; /** * * String.intern()是一个Native方法, * 它的作用是:如果字
您会推荐哪些资源来学习 AppleScript。我使用具有 Objective-C 背景的传统 C/C++。 我也在寻找有关如何更好地开发和从脚本编辑器获取更快文档的技巧。示例提示是“查找要编写脚本的
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
关闭。这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。 想改善这个问题吗?更新问题,以便堆栈溢出为 on-topic。 6年前关闭。 Improve this
我是塞内加尔的阿里。我今年60岁(也许这是我真正的问题-笑脸!!!)。 我正在学习Flutter和Dart。今天,我想使用给定数据模型的列表(它的名称是Mortalite,请参见下面的代码)。 我尝试
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
学习 Cappuccino 的最佳来源是什么?我从事“传统”网络开发,但我对这个新框架非常感兴趣。请注意,我对 Objective-C 毫无了解。 最佳答案 如上所述,该网站是一个好地方,但还有一些其
我正在学习如何使用 hashMap,有人可以检查我编写的这段代码并告诉我它是否正确吗?这个想法是有一个在公司工作的员工列表,我想从 hashMap 添加和删除员工。 public class Staf
我正在尝试将 jQuery 与 CoffeScript 一起使用。我按照博客中的说明操作,指示使用 $ -> 或 jQuery -> 而不是 .ready() 。我玩了一下代码,但我似乎无法理解我出错
还在学习,还有很多问题,所以这里有一些。我正在进行 javascript -> PHP 转换,并希望确保这些做法是正确的。是$dailyparams->$calories = $calories;一条
我目前正在学习 SQL,以便从我们的 Magento 数据库制作一个简单的 RFM 报告,我目前可以通过导出两个查询并将它们粘贴到 Excel 模板中来完成此操作,我想摆脱 Excel 模板。 我认为
我知道我很可能会因为这个问题而受到抨击,但没有人问,我求助于你。这是否是一个正确的 javascript > php 转换 - 在我开始不良做法之前,我想知道这是否是解决此问题的正确方法。 JavaS
除了 Ruby-Doc 之外,哪些来源最适合获取一些示例和教程,尤其是关于 Ruby 中的 Tk/Tile?我发现自己更正常了 http://www.tutorialspoint.com/ruby/r
我只在第一次收到警告。这正常吗? >>> cv=LassoCV(cv=10).fit(x,y) C:\Python27\lib\site-packages\scikit_learn-0.14.1-py
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
我是一名优秀的程序员,十分优秀!