大哥大姐们帮帮忙最近刚刚看js的东西但是比较难理解如var tagTokenRe=/^(#)?([\w-\*]+)/;
var str="head/script";
var b=str.match(tagTokenRe);
alert(b[0]+"-"+b[1]+"-"+b[2])结果返回 head--head
为什么会这样? match返回的不是匹配的数组吗?小弟不明白
var str="head/script";
var b=str.match(tagTokenRe);
alert(b[0]+"-"+b[1]+"-"+b[2])结果返回 head--head
为什么会这样? match返回的不是匹配的数组吗?小弟不明白
解决方案 »
- log问题
- 关于数据 交换 的问题。
- webloigc下EJB3的JNDI错误
- Weblogic问题-- 请教[HTTP:101220]Error occurred while setting document root
- weblogic开发疑难杂症(万分火急)
- 请教关于Spring的问题
- eclipse中的JSP在tomcat中怎么运行?
- java mail pop3收邮件问题
- 在J2EE系统中EJB究竟起到多大的作用,而现在还有一些像JDO, Hibernate,他们又有什么差别,他们又是如何在多表查询中起到作用的呢
- 请教关于播放WAV声音文件的方法
- 一个I/O操作的问题
- Spring 加载
对于字符串的match,如果正则表达式是全局的,即: var tagTokenRe=/^(#)?([\w-\*]+)/g;
返回的 数组 是所有的匹配: 在这里只有一个 'head' (因为是从行首开始的)
如果正则表达式是非全局的,返回的 数组 包含的是第一个匹配,接下来是第一个分组的捕获,第二个分组捕获。
这里第一个分组没匹配到#,所以为空,第二个分组匹配到head
你这边是返回了第一个,整体是了b[0]head,第一个组没有匹配是b[1]空,第二个组有匹配是b[2]=head