Angular JS正则表达式替换
Angular JS regex replace
这个问题是在Regex匹配整个单词包括空格和句号
我最终使用的正则表达式是(<(p|li)'b[^<>]*>[^<>'n]*)'b(Cat|Dog|Fish)'b([^<>'n]*<'/'2>)
现在,我需要用其他HTML替换匹配的单词。
Vks,谁帮助我建立这个正则表达式建议我可以访问$3
变量来获得匹配的单词。但我似乎做不到。(https://regex101.com/r/oC5rY5/12 javascript)
我正试图在Angular JS中做替换,这是我不太熟悉的东西。
html.replace(regex, function(fullMatch, match) {
if (angular.isString(match)) {
var abc = fullMatch.length > match.length ? fullMatch[0] : '';
//Custom function to fetch data based on the matched word.
var obj = $scope.getMoreInfo(match);
if (angular.isObject(obj)) {
return abc + '<div class="test123" url="' + obj.Url + '" text="' + match + '">' + match + '</div>';
}
}
return fullMatch;
});
我如何在这里访问$3
?match
不返回匹配的单词。尝试使用match[3]
,但也不起作用。
请注意,我的替换不只是一个字符串,但整个页面的HTML,所以它需要递归。
您可以通过位置参数在replace函数中获得匹配的组。第一个参数是匹配,然后p1, p2 and so on
是匹配的组。在你的例子中,你可以像这样得到第三个匹配。
html.replace(regex, function(match, p1, p2, p3, p4) {
console.log(p3);
});
更多信息请参阅此处的参考https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter
相关文章:
- 如何用正则表达式替换特定的JavaScript注释
- 如何在单个正则表达式中替换多个值
- 用特定的javascript正则表达式替换每个单词
- 字符串替换正则表达式,开头为空格
- 用Javascript实时替换正则表达式
- 用 javascript 替换正则表达式中的部分文本
- JavaScript 替换正则表达式而不是全局
- 字符串替换正则表达式不起作用
- JavaScript - 替换/正则表达式以格式化论坛中的引号
- Javascript替换-正则表达式
- 用Javascript替换正则表达式转义$to$
- JS替换正则表达式,但在输出中使用部分表达式,如变量
- Javascript替换正则表达式不按预期工作
- 如何在Javascript中忽略/允许多个换行符替换正则表达式
- 传递变量来替换正则表达式函数
- 字符串用正则表达式替换正则表达式字符类
- 如何用匹配长度的$ string替换正则表达式匹配
- 用提示/回调UI替换正则表达式
- UltraEdit查找并替换正则表达式
- 无法用javascript替换正则表达式