gpt4 book ai didi

javascript - 正则表达式包装的字符串不显示值

转载 作者:行者123 更新时间:2023-11-30 12:06:01 24 4
gpt4 key购买 nike

我有一个接收字符串的函数,然后将所有占位符包装在 span 中。

function insertPlaceholders(text) {
var wrappedText = text.replace(/%[a-zA-Z0-9\_]+%/g,"<span class='atwho-inserted' data-atwho-at-query='%'>$1</span>")
return wrappedText;
}

测试字符串是这样的:

This is a %test% string with %multiple% placeholders of which %one_is% a underscore one.

如果我在 regex101 上测试我的正则表达式它匹配正确。

但是,wrappedText 返回如下:

// I inserted the linebreaks so it's easy to read
<span class='atwho-inserted' data-atwho-at-query='%'>$1</span>
<span class='atwho-inserted' data-atwho-at-query='%'>$1</span>
<span class='atwho-inserted' data-atwho-at-query='%'>$1</span>
<span class='atwho-inserted' data-atwho-at-query='%'>$1</span>
<span class='atwho-inserted' data-atwho-at-query='%'>$1</span>

我做错了什么?我看了看 this question看起来我走在正确的轨道上,但我看不出我在哪里搞砸了。

最佳答案

您需要使用 group () 以便可以在替换中使用该值

function insertPlaceholders(text) {
var wrappedText = text.replace(/(%[a-zA-Z0-9\_]+%)/g, "<span class='atwho-inserted' data-atwho-at-query='%'>$1</span>")
return wrappedText;
}

result.innerHTML = insertPlaceholders('This is a %test% string with %multiple% placeholders of which %one_is% a underscore one.')
<div id="result"></div>

关于javascript - 正则表达式包装的字符串不显示值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35219037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com