gpt4 book ai didi

javascript - 删除标点符号并将其放置在字符串的末尾

转载 作者:行者123 更新时间:2023-12-01 03:33:20 25 4
gpt4 key购买 nike

我正在尝试编写一个函数,该函数在执行时将从单词中删除标点符号并将标记放在末尾。移除位工作正常,直到我附加了在末尾添加相同标记的部分;现在而不是删除标点符号。在字符串内部,它将它留在那里并将其添加到末尾,这不是我想要的。我的代码如下:

function containsPunctuation(word) {
var new_word;
new_word = word.replace(".", "");
new_word = word.replace("!", "");
new_word = word.replace(";", "");
new_word = word.replace(",", "");
new_word = word.replace("?", "");
if (word.includes(".") === true) {
new_word = new_word + ".";
}
return new_word;
}

最佳答案

您的代码存在三个主要问题:

<小时/>

1

第一次替换后,您必须在new_world上进行操作

var new_word;
new_word = word.replace(".", "");
new_word = new_word.replace("!", "");

或者更简单地说,您可以直接对接收到的参数进行操作,而不使用附加变量:

word = word.replace(".", "");
word = word.replace("!", "");
<小时/>

2

请记住,replace() 仅在第一次出现时进行替换。

如果这不是所需的行为,您可以使用此功能:

function StringReplace( str, fnd, rep ) {
return str.split(fnd).join(rep);
}

然后

    word = StringReplace( word, ".", "");
/* ...and so on */
<小时/>

3

在开始替换之前必须检查字符串是否包含标点符号.(并删除每个.),所以在开始时...

var addPunctuation;
addPunctuation = word.includes(".");

然后在函数返回之前:

if( addPunctuation ) {
word += '.';
}
<小时/>

整个事情变得

function StringReplace( str, fnd, rep ) {
return str.split(fnd).join(rep);
}

function containsPunctuation(word) {
var addPunctuation;
addPunctuation = word.includes(".");

word = StringReplace(word, ".", "");
word = StringReplace(word, "!", "");
word = StringReplace(word, ";", "");
word = StringReplace(word, ",", "");
word = StringReplace(word, "?", "");

if( addPunctuation ) {
word += ".";
}

return word;
}

关于javascript - 删除标点符号并将其放置在字符串的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44420174/

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