gpt4 book ai didi

javascript - 如何使用正则表达式和javascript替换同一字符串中的多个模式?

转载 作者:行者123 更新时间:2023-12-01 00:41:21 25 4
gpt4 key购买 nike

我想使用正则表达式和 JavaScript 替换同一字符串中的多个模式。

我想做什么?例如我有一个字符串

string = "hello i am [12@fname lname] and i am referring this user [23@fname1 lname1]"

现在我使用正则表达式获取带有 [] 的所有字符串

const get_strings_in_brackets = string.match(/\[(\d+@[\w\s]+)]/g); 

所以 get_strings_in_brackets 将有[“[12@fname lname]”,“[23@fname1 lname1]”]

现在我希望将它们替换为字符串 "<some-tag id="12"/> "<some-tag id="23"/>在字符串 "hello i am [12@fname lname] and i am referring this user [23@fname1 lname1]"

还有此字符串中的数字 12 "<some-tag id="12"/>从字符串 ["[12@fname lname]" 中获取在@字符之前。

我尝试过做什么?

我尝试仅替换一个带有括号的字符串,其含义如下例所示 string =“你好我是[12@fname lname1]”

const extracted_string_in_brackets = string.match(/\[(\d+@[\w\s]+)]/g);
const get_number_before_at_char =
extracted_string_in_brackets[0].substring(1,
extracted_string_in_brackets[0].indexOf('@'));
const string_to_add_in_tag = `<some-tag
id="${get_number_before_at_char}"/>`;
const final_string = string.replace(extracted_string_in_brackets,
string_to_add_in_tag);

如果方括号内只有一个字符串,则上述代码有效。但是我该如何使用括号中的多个字符串并将其替换为例如标记字符串。

有人可以帮我解决这个问题吗?谢谢。

最佳答案

只需在替换中使用组引用即可:

string = "hello i am [12@fname lname] and i am referring this user [23@fname1 lname1]"

newstr = string.replace(/\[(.+?)@(.+?)\]/g, '<some-tag id="$1"/>')

console.log(newstr)

关于javascript - 如何使用正则表达式和javascript替换同一字符串中的多个模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57693170/

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