JavaScript正则表达式中 ?: 是什么意思?

作者&投稿:谏妍 (若有异议请与网页底部的电邮联系)
js中正则表达式中的?:什么意思。好像没有什么用处~

如果用在( )中最开头的地方,即: (?:xxxxx) 只是将()中的内容分组【一般括号后面有*或+等修饰】, 不进行捕获(也就是不将括号中的内容保存在 \1 、 \2这样的变量中)。
其他地方——?可以修饰?之前的字符,表示可选,前面的字符存在或不存在都能匹配,
比如(wo)?man ——可以匹配man和woman。而冒号匹配冒号本身。
例如:says?: \w 可以匹配
He [says: H]ello! 或 I [say: H]ello! #注:匹配[]中的内容

在JavaScript中,正则表达式通常用于两个字符串方法:search()和replace()。
search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。



正则表达式的特点是:
1、灵活性、逻辑性和功能性非常强;
2、可以迅速地用极简单的方式达到字符串的复杂控制。
3、对于刚接触的人来说,比较晦涩难懂。
由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。

“?:”是“非获取存储匹配”的意思

“ ?:” 只在一个“()”group中,紧贴着“(”出现,例如“(?:abcdefg)”,不同于“ ? ”, “?: ”不是一个量词,但是与“()”共同构造一个元字符,这个元字符所匹配出来的结果,不会保留,也不能参与诸如替换计算等等的操作。(这个操作在服务端多见一些,前端用的不多)(javascript只有string对象的replace方法能用到这个功能)

简单来说,就是你的正则表达式如果用不着在javascript里面使用replace方法,“?:”就可以省去(当然,看个人喜好和排版习惯,还有调试中的页面响应速度,如果加了“?:”反而更快,那就用吧)。

这么说起来还是比较抽象,用实例代码来说明吧。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>

<p>将匹配的数字增加后缀“9”</p >

<p class="demo">/(\d+)/gi:A23G4HFD567.</p >
<p class="demo">/(?:\d+)/gi:A23G4HFD567.</p >

<button onclick="myFunction()">点我</button>

<script>

function myFunction(){

var e=document.getElementsByClassName("demo");

var str=e[0].innerHTML;

var n=str.replace(/(\d+)/gi,"$19");
e[0].innerHTML=n;


str=e[1].innerHTML;

var n=str.replace(/(?:\d+)/gi,"$19");
e[1].innerHTML=n;

}


</script>

</body>
</html>

<!---->

<!--在实例里面“$1代表第一个“()”所匹配的结果-->

点击“点我”按钮前

点击“点我”按钮后

可以看到“/(\d+)/gi”所匹配的结果被用于扩展替换字符串中的“$1”;

但是“/(?:\d+)/gi”所匹配的结果没有被用于扩展替换字符串中的“$1”,尽管,它也成功地找到了被查找字符串中的数字,显然结果没有被保留。

对了,类似的问题,可以用这种办法去对比验证。(比如“?=”、“?!”、“?<=”、“?<!”是什么意思……)

上图是在菜鸟教程找到的一个比较全面的正则表达式的元字符列表的部分:https://www.runoob.com/regexp/regexp-metachar.html

还有,不同软件的正则表达式的可能有不同的特性,但是目前perl的正则表达式是公认最多特性的。



1.什么 是正则表达式
正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
正则表达式并不是属于某种语言的,它是一门独立的语言,几乎在所有的编程语言中都提供了相关支持(Javascript、PHP、Java、C++)
以SQL语言为例:搜索功能
精准匹配:
\$sql = “select * from goods where title=’Nokia N95’”; //返回某个固定的结果
模糊匹配:
\$sql = “select * from goods where title like ‘%Nokia N95%’”; //返回某种满足条件的结果
所以由此可知,正则表达式也是一种模糊匹配。
2.正则 表达式应用场景
① 数据隐藏 李先生 一等奖 139****635
② 数据验证 手机验证、邮箱验证、IP地址验证
③ 数据采集 网站后台都可以集成一个按钮(数据采集)
④ 数据检索
3.快速入门
1)查找一个字符串中是否具有数字“8”
运行结果:
2)查找一个字符串中是否具有数字
运行结果:
3)查找一个字符串中是否具有非数字
运行结果:


javascript是什么意思 初学者必看的javascript入门指南?
JavaScript最初是由网景公司的Brendan Eich在1995年创建的,最初被称为LiveScript。后来,它被重命名为JavaScript,以更好地与Sun Microsystems的Java语言相匹配。JavaScript是一种开放标准语言,由ECMAScript规范定义,目前最新的版本是ECMAScript 2021。JavaScript最初是由网景公司的Brendan Eich在1995年创建的...

javascript什么意思
JavaScript简称js,是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。JavaScript同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。特点 1、...

javascript是干什么的
JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。javascript是一种解释类型的语言,跟...

JS全称是什么
js 的全称是javascript ,JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

javascript是啥
JavaScript是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。JavaScript在1995年由Netscape公司的...

为什么JavaScript不可用?
如果 JavaScript 不可用,通常意味着您的浏览器或网络连接无法访问 JavaScript 引擎或库。以下是一些可能导致 JavaScript 不可用的常见原因和解决方法:浏览器阻止了 JavaScript 运行:某些浏览器可能通过安全设置阻止了 JavaScript 运行。您可以尝试禁用浏览器安全设置或更改浏览器设置以允许 JavaScript 运行。JavaS...

javascript怎么开启
javascript功能可以给浏览器带来很多的帮助,是非常人性化的工具,不过刚接触的使用者几乎都不知道该怎么打开这个工具,下面就带来了教程,看看javascript怎么开启吧。javascript怎么开启:1、首先打开浏览器,然后点击右上角的设置。2、之后点击设置中的“Internet选项”。3、在任务选项栏点击“安全”。4、在...

启用javascript什么用启用javascript有什么用
启用javascript是什么意思?1。javascript是网页效果的脚本。如果不启用,有些效果会不可见,比如网页上的轮播、弹出对话框等。华丽的互动效果将是无形的。如果打开,可以正常访问网页。2.javascript是一种脚本语言,通常在浏览器中执行。手机有打开的选项,说明你的手机浏览器支持,所以能不能打开取决于你...

JavaScript有哪些分类?
JavaScript是一种广泛使用的编程语言,可以用于构建各种类型的软件应用程序,包括网站、移动应用程序、桌面应用程序和游戏。以下是JavaScript的几种成熟分类:1. 前端开发:JavaScript通常用于创建动态、交互式的网站界面。前端开发人员使用JavaScript来处理用户与网站的交互,例如响应用户点击按钮、填写表单或滚动页面...

javascript怎么开启
javascript开启的方法就是在Chrome浏览器的地址栏中输入网址,并按下Enter键即可。JavaScript是一种广泛使用的客户端脚本语言,可用于增强网页中的交互性和功能性。无论您是一个新手还是一个有经验的开发者,都需要知道如何开启JavaScript,才能使用它的许多功能。JavaScript可以在用户的浏览器上运行,用来增强...

肇东市13525397089: js正则表达式的使用 -
说胆黄瑞: 我这里给你写了一个例子<br>var reg = /^[a-zA-Z]$/;// 这里是 正则表达式,大小写英文字母都可以<br> if (reg.test(userName.value) != true) {<br>alert("用户应为全英文");<br>}<br>希望对你有用,如果还有问题,请继续追加问题

肇东市13525397089: js正则表达式语法 -
说胆黄瑞: js不支持负向零宽断言(?<exp)和(?<!exp)都是不支持的 也许你可以改成这样 \b(\w{1,3}|\w*(?!(?:dual))\w{4})\b 另:你的正则表达式连qwerdual也是不能匹配的 如果你只是想排除单词dual的话(?!dual)\b\w+\b就可以了 看不懂你为什么要在(?<!)加一个(?:),零宽断言本来就不会捕获结果,额外加一个没有任何效果

肇东市13525397089: 在JavaScript中正则表达式的用法 -
说胆黄瑞: 正则表达式验证网址:var Reg=/^(http:\/\/w{3}\.)(\w+)\.(com|cn|net)$/; var str=" http://www.asp211.com" if(Reg.test(str)) alert("网址验证成功!");

肇东市13525397089: javascript 正则表达式/^(?!#)[^\.\\\/\?\*&:<>?{|}+]+$/是什么意思? -
说胆黄瑞: 在java中要进行转义,所以转化成标准正则表达式后就是“ !\^\.\*\$!([^!]+)!” 正则表达式中\^ 表示就是^的本身的意思,\. \$ ,同理得知;所以最后你的表达式表示!^.$! 开头后面跟任意非!的字符串重复一次到无穷次,然后以!结束.例如:1321312!^.$! 123!123123.如果想让字符串只能是!^.$! 123! ,两边没有其他字符的, 那么在你正则的首加上^尾加上$.

肇东市13525397089: js里的正则表达式有几种构造方式,分别是什么? -
说胆黄瑞: 一般来说有两种:1、用两斜杠将正则表达式夹在中间.例:var reg = /\w+/;2、使用new来创建.例:var reg = new RegExp(“\w+”); 希望可以帮到你!

肇东市13525397089: 在javascript中怎么用正则表达式??? -
说胆黄瑞: <script type="text/javascript"> var reg = /^\d{5}$/; var str = '12345'; var result;result = reg.test(str); //测试:str 是否符合 正则 ^\d{5}$,返回true 或 false//result = reg.exec(str); //查找:str 中否符合 正则 ^\d{5}$ 的字符,找不到返回 null</script>

肇东市13525397089: js中正则表达式中的?:什么意思.好像没有什么用处 -
说胆黄瑞: 1. 如果用在( )中最开头的地方,即: (?:xxxxx) 只是将()中的内容分组【一般括号后面有*或+等修饰】, 不进行捕获(也就是不将括号中的内容保存在 \1 、 \2这样的变量中).2. 其他地方——?可以修饰?之前的字符,表示可选,前面的字符存在或不存在都能匹配,比如(wo)?man ——可以匹配man和woman.而冒号匹配冒号本身.例如:says?: \w 可以匹配 He [says: H]ello! 或 I [say: H]ello! #注:匹配[]中的内容

肇东市13525397089: js中正则表达式 -
说胆黄瑞: 输入之后按测试<br><input type="text" id="name" /><br><input type="button" value="测试" onclick="alert(/^[a-z][a-z\d]{5}$/i.test(document.getElementById('name').value));" />

肇东市13525397089: JS 中怎么写正则表达式 -
说胆黄瑞: k传字符串就行了,你在test方法调用之前,先用此字符串new一个正则表达式对象出来就行了, var t = new RegExp(k, 'g'); t.test(i)这样就可以了.

肇东市13525397089: javascript的正则表达式是什么意思,谁能具体解释下其用法以及技巧谢谢
说胆黄瑞: javascript正则表达式是一个对象 一个字符串处理的工具 如 var s="xuld1xuld2xuld"; 要把这个字符串中的数字删掉,如果只是单纯的替换则不方便. 用正则: s=s.replace(/\d/g,""); // s删掉数字 这里/\d/g 就是一个正则表达式.当然具体的还网上搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网