let numbersRegex = /\d+/;
布局函数形式:
let regex = new RegExp('pattern', 'flags');
同样的例子,利用布局函数形式:
let numbersRegex = new RegExp("\d+", "");
把稳:在布局函数中写入字符串时,须要对分外字符进行转义。
2. 正则表达式模式正则表达式的主体部分是“模式”,用于描述要匹配的文本构造。以下是一些基本模式示例
\d 匹配任何数字(等同于 [0-9])\w 匹配字母、数字或下划线(等同于 [a-zA-Z0-9_])\s 匹配任何空缺字符(包括空格、制表符、换行符等). 匹配除换行符之外的任意单个字符^ 匹配字符串的开始位置$ 匹配字符串的结束位置 表示前面的元素可以重复零次或多次+ 表示前面的元素至少重复一次? 表示前面的元素可选,涌现零次或一次{n} 表示前面的元素必须重复n次{n,} 表示前面的元素至少重复n次{n,m} 表示前面的元素重复次数在n到m之间3. 标志位
标志位位于正则表达式末端,用于改变匹配行为:
g 全局搜索,匹配字符串中的所有符合条件的位置,而不是只找到第一个就停滞。i 忽略大小写。m 多行模式,使^和$可以匹配每一行的开始和结束。4. 正则方法运用在JavaScript中,我们可以利用以下内置的方法来操作正则表达式:
test():检测字符串是否符合某个正则表达式。let isNumber = /\d+/.test("123");console.log(isNumber); // true
match():在字符串上实行查找,返回匹配结果数组或者null。
let matches = "Hello 123 World".match(/\d+/);console.log(matches[0]); // "123"
exec():在字符串上实行查找,返回包含匹配信息的工具或者null。
let reg = /\d+/g;let matchResult = reg.exec("Hello 123 World");console.log(matchResult[0]); // "123"
search():返回字符串中第一个匹配项的索引,如果没有找到则返回-1。
let index = "Hello 123 World".search(/\d+/);console.log(index); // 6
replace():利用新的子串更换与正则表达式匹配的子串。
let replacedStr = "Hello 123 World".replace(/\d+/, "456");console.log(replacedStr); // "Hello 456 World"
split():根据正则表达式分隔字符串,返回一个由分割后的子串组成的数组。
let words = "Hello World, How are you?".split(/\s,\s/);console.log(words); // ["Hello World", "How are you?"]
5. 高等技巧非捕获组 (?:...):不捕获括号内的内容,仅作分组之用。负向前瞻 (?=...) 和负向后瞻 (?!...):用来断言后面或前面的内容,但并不包含在匹配结果内。反向引用 \n:匹配第n个括号里的内容。
let regex = /(hello)\s+(world)(?=\!)/;let str = "hello world!";let match = str.match(regex);console.log(match[1]); // "hello"console.log(match[2]); // "world"
6.小结
JavaScript中的正则表达式功能强大且灵巧,闇练节制这一工具能极大地提高开拓效率,尤其是在数据洗濯、验证和搜索等场景。希望这篇指南能帮助你更好地理解和利用正则表达式,实际操作中还需结合详细需求进行调度和优化。