02.26 正则表达式2

字符串正则方法

String.prototype.search(regexp|substr)

返回第一个和参数匹配的子串的起始位置,没有匹配子串返回 -1;如果参数不是正则表达式,将会通过 RegExp 构造函数转换成正则表达式。

String.prototype.replace(regexp|substr, newSubStr|function)

第一个参数同 search ,查找指定子串,如果第二个表达式是字符串,将把第一个参数匹配的子串替换成为 newSubStr;如果在替换字符串中出现了 $ 加数字, replace 将用与指定的子表达式相匹配的文本来替换这些字符。

使用字符串作为参数时替换字符串可以插入下面的特殊变量名:

$$ 插入一个 "$"$& 插入匹配的子串$ 插入当前匹配的子串左边的内容$' 插入当前匹配的子串右边的内容$n 假如第一个参数是 RegExp对象,并且 n 是个小于100的非负整数,那么插入第 n 个括号匹配的字符串,注意:索引是从1开始。

String.prototype.match(regexp)

参数 regexp 为一个正则表达式对象。如果传入一个非正则表达式对象,则会隐式地使用 new RegExp(obj) 将其转换为一个 RegExp 。

String.prototype.split([separator[, limit]])

separator 指定表示每个拆分应发生的点的字符串,可以是一个字符串或正则表达式,如果空字符串("")被用作分隔符,则字符串会在每个字符之间分割。

limit 一个整数,限定返回的分割片段数量。


RegExp 属性

flags 会返回正则表达式的修饰符;表示对应修饰符是否存在的只读布尔值,global (表示是否带有修饰符 g),ignoreCase (i),multiline(m),sticky(y),dotAll(s),unicode(u);source 只读字符串,包含正则表达式的文本;lastIndex 可读/写整数。如果带有 g 修饰符,这个属性存储在整个字符串中下一次检索的开始位置。这个属性会被 exec() 和 test() 方法用到。


方法

exec(),如果没有找到任何属性,将返回 null,如果找到匹配返回一个数组,该数组第一个元素是相匹配的字符串,余下的元素是与圆括号内的子表达式相匹配的子串。当调用 exec() 的正则表达式具有修饰符 g 时,它将把当前正则表达式对象的 lastIndex 属性设置为紧挨着匹配子串的字符位置。test(),调用 test() 和 exec() 等价,当 exec() 返回结果不是 null,test() 返回 true,否则返回 false 。