JS中正则表达式 js正则表达式数字
一、RegExp(正则表达式)的属性和方法
1、属性
RegExp的实例有几个只读的属性:
global表示是否为全局匹配,
igoreCase表示是否忽略大小写,
multiline表示是否为多行匹配,
source是正则式的源文本,如/[ab]/g的源文本就是[ab];
另外还有一个可写的属性是lastIndex,表示下次执行匹配时的起始位置。
2、方法
RegExp有两个方法exec和test,均以待匹配的字符串为参数。
(1)exec
如果没有发现匹配则返回null,否则返回一个数组,该数组的第一项为匹配的字符串,接下去为与各个子表达式相匹配的子串;该数组的属性index表示发生匹配的位置,属性input表示被检索的字符串。
注意:如果正则式具有全局属性g,则执行一次exec后,该RegExp对象的lastIndex属性会被设为紧接着匹配子串的字符位置,当该RegExp对象再次调用exec时就会从lastIndex处开始执行匹配。如果exec没有发现任何匹配,它会将lastIndex设为0。当然,如果没有全局属性g的话,exec总是会将lastIndex设为0。
例如:
re = /[ab]+(c)+/g;
m = re.exec('acabcc');
// m[0]为'a', m[1]为'c', m.index为0,m.input为'acabcc',re.lastIndex为2
m = re.exec('acabcc');
// m[0]为'ab', m[1]为'cc', m.index为2,m.input为'acabcc',re.lastIndex为6
m = re.exec('acabcc');
// m为null,re.lastIndex为0
(2)test
test方法执行一次exec,如果发生匹配返回true,否则返回false。
因为test方法是调用exec的,所以也可以用test方法来遍历一个字符串。
二、和正则式相关的几个String(字符串)的方法
1、search(RegExp)
返回第一个与之匹配的子串的开始位置,如果没有匹配则返回-1。
传入的参数如果不是正则式则会传递给RegExp构造函数先转成正则式再进行匹配.
不支持全局匹配g
2、replace(RegExp, replacement)
第一个参数是正则式,第二个参数是要进行替换的字符串。
如果正则式指定了全局模式g,则会替换所有的匹配,否则只替换第一个匹配。replacement中的$符号具有特殊含义,$1,$2,...,$99代表与正则式中的第1个到第99个子表达式相匹配的文本,$& 代表与正则式相匹配的文本,$` 代表位于匹配字串左侧的文本,$'代表位于匹配字串右侧的文本,$$ 为直接量$
例如,想用花引号代替直引号,可用如下代码:
text.replace(/"([^"])*"/g, "``$1''")
另外,replacement也可是函数,传入的参数就是匹配的文本,返回替换的文本即可。
例如,将文本中每个单词的首字母改为大写字母:
text.replace(/bw+b/g, function(word){return word.substr(0,1).toUpperCase()+word.substr(1);})
3、match(RegExp)
无匹配时返回null,否则返回一个数组,该数组的内容取决于正则式是否具备全局属性g。如果没有全局属性g,则match的返回值和exec的返回值类似。如果具有全局属性g,则返回数组代表的是所有匹配的文本,而不含有任何子表达式匹配的信息,也没有index和input属性
4、split(delimiter, limit)
返回一个字符串数组,这些数组元素是通过从头到尾检索字符串中与delimiter相匹配的文本,在文本之前和之后分割原string得到,返回的子串中不包括定界符文本(注:当delimiter是包含子表达式的正则式时,返回数组中将包含与子表达式相匹配的文本,但是不包含与整个正则式相匹配的文本)。如果定界符与字符串的开头相匹配,则返回数组的第一个元素是空串;如果定界符与字符串结尾相匹配,则数组的最后一个元素是空串(注:如果delimiter是空串或与空串相匹配的正则式,那么字符串的每个字符之间都被分割,返回数组长度与原字符串长度一致,因为空串不匹配字符串的开头或结尾!
例如:"Hello<b>world</b>".split(/(<[^>]*>)/)
返回 ['Hello ', '<b>', 'world', '</b>', ''])。
更多阅读
C++11中的lambda表达式 c lambda表达式 linq
C++11添加了一项名为lambda表达式的新功能,通过这项功能可以编写内嵌的匿名函数,而不必编写独立函数和函数对象,使得代码更容易理解。lambda表达式的语法如下所示:[capture_block](parameters) exceptions_specification-> return_type
^0-9 *1-9 0-9 *$不为0的数字正则表达式 数字0 9正则表达式
^[0-9]*[1-9][0-9]*$及正整数正则表达式"^d+$" //非负整数(正整数+0)"^[0-9]*[1-9][0-9]*$" //正整数"^((-d+)|(0+))$" //非正整数(负整数+0)"^-[0-9]*[1-9][0-9]*$" //负整数"^-?d+$" //整数"^d+(.d+)?$"
台灣旅遊-三月份末去台湾旅游要带什么样的衣服 、买什么特色纪念 台湾中正纪念堂
三月份末去台灣旅遊要帶什麼樣的衣服、買什麼特色紀念品?懸賞分:0|離投票結束還有4小時|提問者:匿名衣服神馬的建議還是穿的多點吧! 特色小吃很多,比如彰化肉圓、台式肉粽、蚵仔煎、珍珠奶茶、台南鱔魚麵等等。 。 紀念品鶯歌陶瓷台灣琉
转载 上海琉璃光中医诊所黄宗隆介绍,36度7上海台节目中正 中正
原文地址:上海琉璃光中医诊所黄宗隆介绍,36度7上海台节目中正作者:itwaibao心地光明,即是诊所的名字“琉璃光”,这是最纯净最明亮的光,来自人的内心,让人快乐,对于黄宗隆来说,这是取名的深意,也是行医的意义。26岁,使很多医科学生刚刚毕业,还在
台湾---台北 中正纪念堂、野柳、故宫博物院、阳明山国家公园、北 台北中正纪念堂官网
台北旅游台北市位于台北盆地中央、淡水河右岸,是全省的政治、经济、文化和教育中心,为台湾第一大城市。公元1875年(清光绪元年),钦差大臣沉葆桢在此建立了台北府,统管台湾行政,从此有“台北”之名。现今全市共划分中正、大同、中山、松山、