字符串正则方法
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 。
閱讀更多 MAO大俠 的文章