js正则表达式中的问号几种用法小结
在表示重复的字符后面加问号,比如+?,*?,{2,3}?可以停止匹配的贪婪模式。
var pattern=/\w{2,3}/; console.log("aaaa".match(pattern)[0]); /*结果"aaa";贪婪模式下会尽可能多的匹配, 所以会匹配3个重复的字符 */ var pattern2=/\w{2,3}?/; console.log("aaaa".match(pattern2)[0]); /* *结果"aa";加问号后会尽可能少的匹配重复次数, *所以匹配到了2个重复的字符 */
在分组内使用?:可以产生没有编号的分组,比如
var pattern=/(ab)\w+(ba)/; console.log("abcba_".replace(pattern,"$1")); /*结果"ab_";匹配到的字符被第一个分组(ab) *替换 */ var pattern2=/(?:ab)\w+(ba)/; console.log("abcba_".replace(pattern2,"$1")); /* *结果"ba_";第一次分组内加入了?:,产生的是一个 *没有编号的分组,所以$1匹配的字符是第二个分组, *也就是第一个编号分组(ba)相匹配的文本内容 */
(?=)和(?!);零宽正向断言和负向断言,括号内表示某个位置右边必须和=右边匹配上,或者不和!后的字符匹配。
var pattern=/str(?=ings)ing/; console.log("strings.a".match(pattern)); console.log("strings.a".match(/string(?=s)/)); console.log("string_x".match(pattern)); console.log("string_x".match(/string(?=s)/)); /*前两个结果是["string"],后两个结果是null; *str(?=ings)ing/匹配"string",r后面的位置右边必须跟 *上ings;和/string(?=s)/一样;匹配"string";g后面的位置 *的右边必须跟一个s。"string_x"虽然也含有"string"但是 *不满足(?=...)括号内的条件 */
var pattern=/string(?!s)/; console.log("strings".match(pattern));//null console.log("string.".match(pattern));//["string"] /*(?!...)某位置右边不能有!后匹配的字符, *string(?!s)/匹配"string","g"后不能跟"s" */
在表示重复次数时,代表重复0次或1次
相关推荐
-
正则表达式(括号)、[中括号]、{大括号}的区别小结
正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字.[\s*]表示空格或者*号. {}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格. (0-9) 匹配 '0-9′ 本身. [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后
-
jQuery中校验时间格式的正则表达式小结
代码中用到了jQuery,传入的参数是jQuery选择的input对象.原理:先用正则匹配,再提取时分秒,看其是否在正常的范围内. 复制代码 代码如下: /** * 检测时间是否符合格式 * @param {Object} timeTextBox */function checkTime(timeTextBox){ var time = timeTextBox.val(); var regTime = /^([0-2][0-9]):([0-5][0-9]):([0-5][0-9])$
-
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
前面我们已经学习了正则表达式的基础语法,包括了定界符.原子.元字符和模式修正 符.实际上正则表达式想要起作用的话,就必须借用正则表达式处理函数.本节我们就来介绍一下PHP中基于perl的正则表达式处理函数,主要包含了分割, 匹配,查找,替换等等处理操作,依旧是配合示例讲解,让我们开始吧. 和正则表达式一样,正则表达式处理函数不能够独立使用,而这必须相结合,才能够完成特定的功能.在前面我们也说过,基于perl的正则表达式要快于POXIS正则表达式处理函数,所以我们只介绍以preg开头的基于perl
-
正则中需要转义的特殊字符小结
如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个\.ls \*.txt.正则表达式有以下特殊字符.需要转义 特别字符 说明 $ 匹配输入字符串的结尾位置.如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'.要匹配 $ 字符本身,请使用 \$. ( ) 标记一个子表达式的开始和结束位置.子表达式可以获取供以后使用.要匹配这些字符,请使用 \( 和 \). * 匹配前面的子表达式零次或多次.要匹配 * 字符,请使用 \*. + 匹配前面
-
swift中的正则表达式小结
作为一门先进的编程语言,Swift 可以说吸收了众多其他先进语言的优点,但是有一点却是让人略微失望的,就是 Swift 至今为止并没有在语言层面上支持正则表达式. 正则表达式的用处: 判断给定的字符串是否符合某一种规则(专门用于操作字符串) - 电话号码,电子邮箱,URL... - 可以直接百度别人写好的正则 - 别人真的写好了,而且测试过了,我们可以直接用 - 要写出没有漏洞正则判断,需要大量的测试,通常最终结果非常负责 过滤筛选字符串,网络爬虫 替换文字,QQ聊天,图文混排 语法规则 使用过
-
正则表达式小结篇
正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 下面小编给大家总结了些关于正则表达式知识点,具体内容如下所示: 1.元字符 [拥有特殊含义的元字符] \d -> 匹配一个0-9的数字,相当于[0-9],和它相反的是\D ->匹配一个除了0-9的任意字符 \w -> 匹配一个0-9.a-z.A-Z._的数字或字符,相当于[0
-
ExtJs 正则表达式小结
使用extJs时能常用的正则表达式 "^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?\d+$" //整数 "^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0) "^(([0-9
-
PHP 正则表达式常用函数使用小结
在PHP中有两套正则表达式函数库.一套是由PCRE(Perl Compatible Regular Expression)库提供的.PCRE库使用和Perl相同的语法规则实现了正则表达式的模式匹配,其使用以"preg_"为前缀命名的函数.另一套是由POSIX(Portable Operation System interface)扩展库提供的.POSIX扩展的正则表达式由POSIX 1003.2定义,一般使用以"ereg_"为前缀命名的函数. 两套函数库的功能相似,
-
php正则表达匹配中文问题分析小结
复制代码 代码如下: $str = '中华人民共和国123456789abcdefg'; echo preg_match("/^[u4e00-u9fa5_a-zA-Z0-9]{3,15}$",$strName); 运行一下上面这段代码,看会有什么提示信息? Warning: preg_match(): Compilation failed: PCRE does not support L, l, N, P, p, U, u, or X at offset 3 in F:wwwrootp
-
js正则表达式中的问号几种用法小结
在表示重复的字符后面加问号,比如+?,*?,{2,3}?可以停止匹配的贪婪模式. var pattern=/\w{2,3}/; console.log("aaaa".match(pattern)[0]); /*结果"aaa";贪婪模式下会尽可能多的匹配, 所以会匹配3个重复的字符 */ var pattern2=/\w{2,3}?/; console.log("aaaa".match(pattern2)[0]); /* *结果"aa&q
-
Shell脚本中$符号的几种用法小结
目录 Shell脚本中$符号的几种用法 1.1 引用变量 1.2 引用脚本或函数参数 1.3 上条命令的返回值 1.4 执行并获取命令输出 1.5 表达式求值 1.6 获取当前进程 ID 1.7 后台运行的最后一个进程 ID 1.8 获取 Shell 选项 shell中$(( )).$( ).``与${ }的区别 (1)$( )与``(反引号):返回括号中命令的结果 (2)${ }变量替换 最近在学习Shell,发现还有一些知识点需要巩固,这里写出来,加深下印象. 通常情况下,在工作中用的最多的
-
Node.js程序中的本地文件操作用法小结
Node最引以为傲的就是它有一个非常小的核心.有一些语言绑定了完整的POSIX API,而 Node实现了尽可能少的绑定,并通过同步.异步或流API形式暴露他们. 这种方法意味着,操作系统中有一些非常方便的功能,需要在Node中重建.这是一个教你如何使用文件系统软件包的实用教程. 引用文件 与文件系统的交互很重要的一点是要指向正确的文件.由于NPM的包使用相对路径引用,所以你不能把路径写死在代码.有两个主要方式来以确保包能引用到正确的文件: // 使用 `path.join()` 而不是 `+`
-
js正则表达式中exec用法实例
本文实例讲述了js正则表达式中exec用法.分享给大家供大家参考.具体如下: exec要注意以下几点: 1. exec返回的是一个数组 2. 该数组的属性有input(被匹配的整个字符串) index(匹配到第一个元素的开始位置) 3. lastIndex还有个匹配到第一个属性后,指向的位置 这个属性智能由RegExp 对象!!!来访问 4. 通过这个属性可以来获取 所用所匹配到字符的字符串 代码如下: function o_exec(){ var str="hjjh,catfff,dog,ca
-
详解A标签中href=""的几种用法
众所周知,a标签的最重要功能是实现超链接和锚点.而且,大多数人认为a标签最重要的作用是实现超链接,今天我刚好碰到a标签的一种写法<a href="JavaScript:;"></a>,所以就来整理下a标签中href的几种用法. 一.js的几种调用方法(参考总结的) 1.a href="javascript:js_method();" 这是常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的hr
-
js正则表达式惰性匹配和贪婪匹配用法分析
本文实例讲述了js正则表达式惰性匹配和贪婪匹配用法.分享给大家供大家参考,具体如下: 在讲贪婪模式和惰性模式之前,先回顾一下JS正则基础: 写法基础: ①不需要双引号,直接用//包含 => /wehfwue123123/.test(); ②反斜杠\表示转义 =>/\.jpg$/ ③用法基础:.test(str); 语法: ①锚点类 /^a/=>以"a"开头 /\.jpg$/=>以".jpg"结尾 ②字符类 [abc]:a或b或c [0-9]:
-
vue3.0中setup的两种用法实例
目录 前言 一.setup函数的特性以及作用 二.setup函数的注意点: 用法1:结合ref使用 用法2:代码分割 总结 前言 这篇文章主要介绍了vue3.0中setup使用,本文通过两种用法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 什么是setup setup是vue3新增的生命周期函数,setup的加入就是为了让vue3使用组合式API(Composition API).使用组合式API更符合大型项目的开发,通过setup可以将该部分抽离成函数,
-
js正则表达式中的单行模式与多行模式实例分析
本文实例分析了js正则表达式中的单行模式与多行模式.分享给大家供大家参考.具体如下: js正则表达式是不支持单行模式的.也就是说,不能把某段内容(有换行),采用模式修正符来处理,使整段内容当成一行来处理. 正则多行替换,需要添加/mg模式增强符. <html> <head> <script type="text/javascript"> //正则替换链接,链接有换行 function t1(){ var con = document.getEleme
-
js正则表达式中test,exec,match方法的区别说明
js正则表达式中test,exec,match方法的区别说明 test test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var reg = new RegExp("1.", "");alert(reg.test(str)); // true exec exec 查找并返回当前的匹配结果,并以数组的形式返回.var str = "1a1b1c";var reg = new R
-
jquery 中toggle的2种用法详解(推荐)
一.在元素的click事件中绑定两个或两个以上的函数 toggle不像bind需要在后面添加"click"来绑定click触发事件,toggle本身就是click触发的(而且只能click触发), 如下实例: <input id="btntest" type="button" value="点一下我" /> <div>我是动态显示的</div> <script type="
随机推荐
- 浅谈oracle SCN机制
- JavaScript判断微信浏览器实例代码
- JS实现自定义简单网页软键盘效果代码
- php从身份证获取性别和出生年月
- Bootstrap进度条与AJAX后端数据传递结合使用实例详解
- Javascript中正则表达式的全局匹配模式分析
- 老生常谈Python序列化和反序列化
- Python基于Matplotlib库简单绘制折线图的方法示例
- 属于你的jQuery提示框(Tip)插件
- vuejs如何配置less
- 详解MySQL用事件调度器Event Scheduler创建定时任务
- Ruby中字符串左侧补零方法实例
- 一天一个shell命令 linux文本内容操作系列-sed命令详解
- 批处理应用:根据文件内容进行重命名操作
- 服务器端包含、嵌入技术SSI(Server SideInc lude)详解
- Oracle排名函数(Rank)实例详解
- jquery trim() 功能源代码
- 总提示[Microsoft][ODBC Excel Driver] 数值字段溢出官方解决方法
- php缩放图片(根据宽高的等比例缩放)实例介绍
- vue结合axios与后端进行ajax交互的方法