gpt4 book ai didi

Javascript - 替换字符串子字符串内的字符

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

我有一个像这样的字符串“this/is an example abc/def/fgh/uio to Give you an example”

我想定位最长的单词,并用 "+" 替换该子字符串上的任何 "/"

我设法识别出最长的单词,并且我知道如何将所有 "/" 替换为 "+" 但我不知道如何替换“/”仅出现在最长的单词中。

这是我到目前为止所得到的

//identify longest word in string
function longestWord(str) {
var words = str.split(' ');
return words.reduce(longer);
}
function longer(champ, contender) {
return (contender.length > champ.length) ? contender: champ;
}

//purely given an exemple, some strigns won't be exactly like this
var text2 = "this/ is an example abc/def/fgh/uio to give you an example"

if (longestWord(text2) > 30 ) {
text2.replace(/\//g, ' / ');
}

问题是这也会替换子字符串“this/”上的“/”,而我不希望这样。

如何实现这一目标?

最佳答案

您的 longestWord 函数返回字符串中最长的单词,因此您可以单独传递该字符串(不是正则表达式)作为 的第一个参数。替换,并替换为(第二个参数)对最长单词调用的/\//g:

function getLongestWord(str) {
var words = str.split(' ');
return words.reduce(longer);
}
function longer(champ, contender) {
return (contender.length > champ.length) ? contender: champ;
}

var text2 = "this/ is an example abc/def/fgh/uio to give you an example"

const longestWord = getLongestWord(text2);
const output = text2.replace(longestWord, longestWord.replace(/\//g, '+'));
console.log(output);

关于Javascript - 替换字符串子字符串内的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54513318/

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