关于正则表达式的问题 大家一起来解释下

问题描述

1、var reg=/([Jj]ava)(Script)?/;var b="JavaScript is not Java";alert(b.match(reg)); 结果为:JavaScript Script Java 2、var reg=/([Jj]ava)(Script)?/g;var b="JavaScript is not Java";alert(b.match(reg)); 结果为:JavaScript Java 为什么加了全局标志 Script却没了 求解释????

解决方案

["JavaScript", "Java", "Script"] 这个数组有三个元素。0元素正好是整个匹配,1元素和2元素是包含了匹配中出现的任一个子匹配即"Java", "Script" ([Jj]ava)和(Script))如果设置了全局标志g引用/([Jj]ava)(Script)?/g;正则出来结果是j/JavaScript 或者 j/Java 。j/Java 这个是必须包含的所以结果就是JavaScript Java
解决方案二:

如果没有设置全局标志 (g),数组的0元素包含整个匹配,而第 1 到 n 元素包含了匹配中曾出现过的任一个子匹配。这相当于没有设置全局标志的 exec 方法。如果设置了全局标志,元素0到n中包含所有匹配。
解决方案三:

["JavaScript", "Java", "Script"] 吧?它们分别是匹配的整串、匹配的子串们(用括号包起来的部分)第二个加了g,可能有多个结果,只返回了匹配到的所有整串

时间: 2024-10-11 14:36:27

关于正则表达式的问题 大家一起来解释下的相关文章

求教大虾,帮我解释下这个正则表达式

问题描述 求教大虾,帮我解释下这个正则表达式 var content = $.trim($('#addContent').val()).replace(/ /g, '<br/>'); 如题,谢谢大虾啦 解决方案 不就是把换行符号替换为html的换行标签<br>而已,因为 除非放在pre标签里面,要不时不会换行的 解决方案二: 就两个函数,一个trim去年左右两边的空格,一个replace把 替换成吗.................................. 解决方案三:

new regexp()-求大虾们帮忙解释下有关compile的正则表达式代码

问题描述 求大虾们帮忙解释下有关compile的正则表达式代码 function(str) { //str= http://localhost:63342/erajs.examples/./ccs/html/CcsDealInput.html var RegUrl = new RegExp(); RegUrl.compile("^[A-Za-z]+://[A-Za-z0-9-_]+.[A-Za-z0-9-_%&?/.=]+$"); if (!RegUrl.test(str))

哪位大神帮我解释下这串正则表达式/^(.*)(\.)(.{1,8})$/

问题描述 哪位大神帮我解释下这串正则表达式/^(.*)(.)(.{1,8})$/ /^(.*)(.)(.{1,8})$/ /这个是什么意思: (.*)这是什么意思: 为什么这个正则表达式都用小括号包含起来 请问下为什么用小括号括起来呢,去掉括号,比如这串表达式写成/^.*..{1,8}$/ 好像意思是一样的 解决方案 前后的杠只是javascript的界符,没有实际意义i这个表达式是说,以任意字符开始(包括没有),之后一个点,然后1-8个任意字符 比如 1234.123aaa abc.aaaa

java后台逻辑问题-求大神帮忙解释下这段代码。

问题描述 求大神帮忙解释下这段代码. 这是一个从表添加页面的代码.currentx是当前页数.我想问下 st st1 st2 st3是什么意思,就是split(:):这个方法我不是很清楚什么意思,还有下面的!ss.equals("t") t是什么. 传参什么的我晓得. @RequestMapping("/addProcess.do") public String addProcessMaintenance(String currentx, String ids, S

随机游走-C++使用 armadillo fuction——谁来解释下代码的含义?!!

问题描述 C++使用 armadillo fuction--谁来解释下代码的含义?!! 这是一个随机游走的算法代码,求相似度矩阵的 但是代码米有看懂,谁能一句一句的解释下啊?--谢谢咯! 附: arma::colvec degree = arma::sum(m_matWeight, 1); arma::mat matD = arma::diagmat(degree); m_matP = arma::solve(matD, m_matWeight); m_matB += m_matP; 重点是su

应用程序-底下怎么那么多个hao?能解释下不?

问题描述 底下怎么那么多个hao?能解释下不? 底下怎么那么多个hao?能解释下不? 解决方案 wndproc是接收消息的,任何消息都会进来,所以没完的hao

url-下面的例子是为什么,谁能解释下

问题描述 下面的例子是为什么,谁能解释下 一个简单的 GET 请求:xmlhttp.open(""GET""demo_get.asp""true);xmlhttp.send(); 在上面的例子中,您可能得到的是缓存的结果.为了避免这种情况,请向 URL 添加一个唯一的 ID:xmlhttp.open(""GET""demo_get.asp?t="" + Math.random()true

ip地址-求解释下这段代码...感激不尽

问题描述 求解释下这段代码...感激不尽 u_long ulDestIP; u_long ulDestIP1=inet_addr(a); u_long ulDestIP2=inet_addr(b); unsigned long count = ntohl(ulDestIP2 - ulDestIP1)-1; struct in_addr in; unsigned long hostip; for(unsigned int i = 0; i <=count+1; i++) { hostip = nt

c语言-请求帮我详细解释下这个程序,谢谢了

问题描述 请求帮我详细解释下这个程序,谢谢了 #include #include #define uchar unsigned char #define uint unsigned int #define WCOMM XBYTE[0x0000] #define RCOMM XBYTE[0x0001] #define WDATA XBYTE[0x0002] #define RDATA XBYTE[0x0003] void BusyWait() { while((RCOMM & 0x80) != 0