摘要:如果匹配成功,则返回正则表达式在字符串中首次匹配项的索引。该字符串中可以内插一些特殊的变量名。使用一个带有相应标志的正则表达式对象来代替此参数。一个整数,限定返回的分割片段数量。
一、RegExp对象
构造正则表达式:
javascript//方式1: var re = /w+/; //最常用的方式 //方式2: var re = new RegExp("w+"); //注意转义1. reg.test(str)
描述:test() 方法执行一个检索,用来查看正则表达式与指定的字符串是否匹配。返回 true 或 false。
javascriptfunction testinput(re, str){ var midstring; if (re.test(str)) { midstring = " contains "; } else { midstring = " does not contain "; } console.log(str + midstring + re.source); } testinput(/c{2}/, "cainiao"); //"cainiao does not contain c{2}"
reference: MDN参考
2. reg.exec(str)方法exec() 方法为指定的一段字符串执行搜索匹配操作。它的返回值是一个数组或者 null。
javascriptvar re = /d(b+)(d)/ig; var result = re.exec("cdbBdbsbz"); console.log(result); //["dbBd", "bB", "d", index: 1, input: "cdbBdbsbz"]
返回的数据:
对象 | 属性/索引 | 描述 | 例子 |
result | [0] | 正则表达式最后的匹配项 | dbBd |
[1], ...[ n ] | 子表达式匹配项 | [1] = bB [2] = d |
|
index | 第一个匹配项在原字符串中的索引 | 1 | |
input | 方法输入的参数字符串 | cdbBdbsbz | |
re | lastIndex | 下一次执行匹配开始索引的位置. | 5 |
ignoreCase | 指"i" 标识是否启用 | true | |
global | 指"g" 标识是否启用 | true | |
multiline | 指"m" 标识是否启用 | false | |
source | 正则表达式的文本表示 | d(b+)(d) |
reference:MDN参考
二、String对象 1. str.search(reg) vs reg.test(str)*描述:search() 方法执行一个查找,看该字符串对象与一个正则表达式是否匹配。参数reg为一个正则表达式对象,否则隐式调用new RegExp(reg)进行转换。
如果匹配成功,则 search 返回正则表达式在字符串中首次匹配项的索引。否则,返回 -1。
javascriptfunction testinput(re, str){ var midstring; if (str.search(re) != -1){ midstring = " contains "; } else { midstring = " does not contain "; } console.log (str + midstring + re); } testinput(/db*/, "sdbbdee"); //sdbbdee contains /db*/
*reference: MDN参考
2. str.match(reg) vs reg.exec(str)描述:当字符串匹配到正则表达式(regular expression)时,match() 方法会提取匹配项。reg参数为一个正则对象,若不是,则隐式地调用new RegExp(reg) 进行转换。返回数组,不匹配返回null。
javascriptvar str = "For more information, see Chapter 3.4.5.1"; var re = /(chapter d+(.d)*)/i; //不是用g的情况 var found = str.match(re); console.log(found); //["Chapter 3.4.5.1", "Chapter 3.4.5.1", ".1", index: 26, input: "For more information, see Chapter 3.4.5.1"]
javascriptvar str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; var regexp = /[A-E]/gi; //使用g时,found不存在index和input属性 var found = str.match(regexp); //["A", "B", "C", "D", "E", "a", "b", "c", "d", "e"]
*reference:MDN参考
3. str.replace(regexp|substr, newSubStr|function[, flags])描述:replace() 方法使用一个替换值(replacement)替换掉一个匹配模式(pattern)在原字符串中某些或所有的匹配项,并返回替换后的字符串。这个替换模式可以是字符串或者正则表达式,替换值可以是一个字符串或者一个函数。
参数
regexp:
一个 RegExp 对象。该正则所匹配的内容会被第二个参数的返回值替换掉。
substr:
一个要被 newSubStr 替换的字符串。
newSubStr:
替换掉第一个参数在原字符串中的匹配部分。该字符串中可以内插一些特殊的变量名。
function:
一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。该函数的参数描述请参考 Specifying a function as a parameter 小节。.
flags:
注意:flags 参数在 v8 内核(Chrome and NodeJs)中不起作用。一个字符串,用来指定 regular expression flags 或其组合。在 String.replace method 中使用 flags 参数不是符合标准。使用一个带有相应标志(flags)的正则表达式(RegExp)对象来代替此参数。该参数的值应该是下面的一个或多个字符,具体作用见下:
g 全局替换
i 忽略大小写
m 多行模式
返回:
一个新字符串,其中匹配模式的某些或所有匹配项被替换为替换值。该方法并不改变调用它的字符串本身,而只是返回替换后的字符串.
javascriptvar re = /apples/gi; var str = "Apples are round, and apples are juicy."; var newstr = str.replace(re, "oranges"); print(newstr); //"oranges are round, and oranges are juicy."
等同于:
javascriptvar str = "Apples are round, and apples are juicy."; var newstr = str.replace("apples", "oranges", "gi"); print(newstr); //"oranges are round, and oranges are juicy."
javascriptvar re = /(w+)s(w+)/; var str = "John Smith"; var newstr = str.replace(re, "$2, $1"); print(newstr); //"Smith John"
reference: MDN参考
4. str.split(seperator, limit)描述:用来分割字符串的字符(串)。separator 可以是一个字符串或正则表达式。 如果忽略 separator,则返回的数组包含一个由原字符串组成的元素。如果 separator 是一个空字符串,则 str 将会转换成一个由原字符串中字符组成的数组。 limit一个整数,限定返回的分割片段数量。split 方法仍然分割每一个匹配的 separator,但是返回的数组只会截取最多 limit 个元素。
*注: 如果 separator 是一个正则表达式,且包含捕获括号(capturing parentheses),则每次匹配到 separator 时,捕获括号匹配的结果将会插入到返回的数组中。然而,不是所有浏览器都支持该特性。
javascriptvar myString = "Hello 1 word. Sentence number 2."; var splits = myString.split(/(d)/); console.log(splits); //["Hello ", "1", " word. Sentence number ", "2", "."]
reference: MDN参考
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/87668.html
摘要:选择分组和引用正则表达式的语法还包括指定选择项子表达式分组和引用前一子表达式的特殊字符。带圆括号的表达式的另一个用途是允许在同一正则表达式的后部引用前面的子表达式。 正则表达式(regular expression)是一个描述字符模式的对象。JavaScript的 RegExp类 表示正则表达式,String和RegExp都定义了方法,后者使用正则表达式进 行强大的模式匹配和文本检索与...
摘要:正则表达式的意义中的正则表达式使用表示,可以使用构造函数来创建对象,不过对象更多的是通过一种特殊的直接量语法来创建。用构造函数也可以定义一个与之等价的正则表达式,代码如下正则表达式的模式规则是由一个字符序列组成的。 正则表达式的模式匹配 正则表达式(regular expression)是一个描述字符模式的对象。javascript的RegExp对象表示正则表达式,String和Reg...
Javascript的正则表达式是前端中比较重要的部分,正则表达式主要用于字符串处理,表单验证等场合,实用高效,文章主要对JavaScript中的正则的学习与总结 正则表达式的定义 正则表达式:是一个描述字符模式的对象,JavaScrip中正则表达式用RegExp对象表示,可以使用RegExp构造函数来创建正则对象 正则表达式的创建 1.字面量创建 var reg = /[a-z]/; 2.构...
摘要:正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回。其中,表示匹配项在字符串中的位置,而表示应用正则表达式的字符串。下面列出了正则表达式所不支持的特性。关卡按要求完成下列常用的正则表达式。 由于本课程的核心是 JavaScript,所以本文着重讲解了「正则表达式」在 JavaScript 中的用法,并未深入「正则表达式」的具体细节。如果您尚不了解「正则表达式」,强...
阅读 1122·2021-11-08 13:13
阅读 1707·2019-08-30 15:55
阅读 2761·2019-08-29 11:26
阅读 2426·2019-08-26 13:56
阅读 2549·2019-08-26 12:15
阅读 2125·2019-08-26 11:41
阅读 1393·2019-08-26 11:00
阅读 1530·2019-08-23 18:30