gpt4 book ai didi

javascript - 使用数组将字符串处理为分隔的单词

转载 作者:行者123 更新时间:2023-11-28 12:13:24 25 4
gpt4 key购买 nike

嗨,我有一个关于 Javascript 的问题,是否可以使用给定的数组,例如

["old", "great", "other", "long", "good", "last"]

如果你有

var str = "oldgreatotherlonggoodlastfirstnewownlittle"

并使用数组和正则表达式打印带有空格的内容?

例如。

old great other long good lastfirstnewownlittle

我只是用 javascript 做一个简单的 Web 应用程序,仅供练习。

最佳答案

您可以使用Array.join()在数组上生成正则表达式,然后将其与 String.replace() 一起使用。在下一个示例中,我使用 replacement function对于替换,它在某些情况下为替换逻辑提供了更多控制。但您可以避免它并使用 @Barmar 答案。

let arr = ["old", "great", "other", "long", "good", "last"];
var str = "oldgreatotherlonggoodlastfirstnewownlittle";

let re = new RegExp(arr.join("|"), "g");
let out = str.replace(re, (m) => m + " ");
console.log(out);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

但是,请注意,前面的方法仅在某些特定情况下有效,但例如,对于 var str = "oldotherlonglastfirstnewgoodownlittlegreat"; 则效果不佳。那么,更通用的方法是:

let arr = ["old", "great", "other", "long", "good", "last"];
var str1 = "oldotherlonglastfirstnewgoodownlittlegreat";
var str2 = "oldgreatotherlonggoodlastfirstnewownlittle"

const separateMatches = (str, arr) =>
{
let re = new RegExp(arr.join("|"), "g");
let out = str.replace(re, (m) => ` ${m} `);
return out.replace(/\s+/g, " ").trim();
}

console.log(separateMatches(str1, arr));
console.log(separateMatches(str2, arr));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

关于javascript - 使用数组将字符串处理为分隔的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55753987/

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