JavaScript 全局RegExp的作用是什么
全局正则表达式(RegExp)是一种可以在字符串中匹配所有模式出现的正则表达式,而不仅仅是第一个匹配的。它可以在JavaScript中使用全局标志(g)来搜索文本中的模式,从而允许您将模式与测试字符串进行多次匹配、搜索和替换。
语法: 要创建一个全局正则表达式,您可以使用以下语法将全局标志g添加到正则表达式模式中:
var regex = /pattern/g;
不同的JavaScript中全局正则表达式的使用方法:
1. match() 方法: 此方法返回一个字符串中模式的所有匹配项的数组。在这个例子中,match方法将在测试字符串中查找Geek,并返回所有匹配项的数组。正则表达式中的gi标志指示替换应该是大小写不敏感且全局的。
JavaScript
var str = 'GeekforGeeks';
var regex = /Geek/gi;
var matches = str.match(regex);
console.log(matches);
输出
[ 'Geek', 'Geek' ]
2. replace() 方法: 该方法使用新值替换字符串中所有匹配模式的出现。在本例中,“to”模式将被替换为“for”,结果输出为GeekforGeeks。正则表达式中的gi标志表示替换应是不区分大小写且全局的。
Javascript
var str = 'GeektoGeeks';
var regex = /to/gi;
var newStr = str.replace(regex, 'for');
console.log(newStr);
输出
GeekforGeeks
示例1:从字符串中删除所有非字母数字字符
在此示例中,我们使用replace()方法和正则表达式[^a-z0-9\s]来删除所有非字母数字字符,如果它们与字符串中不是字母、数字或空白字符的任何字符匹配的话。正则表达式中的gi标志表示替换应该是大小写不敏感和全局的。
Javascript
var str = '$GeekforGeeks!';
var regex = /[^a-z0-9\s]/gi;
var newStr = str.replace(regex, '');
console.log(newStr);
输出
GeekforGeeks
示例2:在字符串中统计模式的所有出现次数
在这个示例中,我们使用match()方法在字符串中找到单词’the’的所有出现次数,不考虑字母的大小写 。 正则表达式中的gi标志表示替换应该是大小写不敏感和全局的。
Javascript
var str = 'GeekforGeeks is a learning platform for geeks';
var regex = /geek/gi;
var count = (str.match(regex) || []).length;
console.log(count);
输出
3