在 JavaScript 中,如何在新字符串中使用全部或部分匹配的字符串。例如:我有以下两个字符串:
var str1 = "Hello, my name is Vinnie Caprarola";
var str2 = "Hello, my name is John Doe";
var str3 = "Hello, my name is very weird";
我想用 span 元素包围名称,因此对名称应用“名称”类。假设这不是字符串的全部,并且前后可能有字符。另外,就像 str3
中那样,如果“你好,我的名字是”后面的部分不是大写,我应该假设它不是一个名字并忽略它。所以我的问题是:如何在所有这些字符串上运行完全相同的函数并获得以下输出:
var str1 = "Hello, my name is <span>Vinnie Caprarola</span>";
var str2 = "Hello, my name is <span>John Doe</span>";
var str3 = "Hello, my name is very weird";
所以,我需要将名称基本上替换为 '<span>' + name + '</span>'
。我如何获得name
在前面的表达式中?
最佳答案
我找到了答案!
据我所知here
,您可以指定一个函数作为替换参数,并在该函数中进行匹配。所以让函数看起来像这样:
function doTheReplace(match) {
return '<span>' + match + '</span>';
}
str1.replace(/Hello\, my name is [A-Z].* [A-Z].* /, doTheReplace);
str2.replace(/Hello\, my name is [A-Z].* [A-Z].* /, doTheReplace);
str3.replace(/Hello\, my name is [A-Z].* [A-Z].* /, doTheReplace);
这将产生请求的输出。
关于javascript - 在输出中使用 str.replace() 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25516605/