gpt4 book ai didi

javascript - 正则表达式用值替换所有逗号

转载 作者:可可西里 更新时间:2023-11-01 02:16:52 25 4
gpt4 key购买 nike

我有一个看起来像这样的字符串:“Doe, John, A”(姓氏、名字、中间名首字母)。

我正在尝试编写一个将字符串转换为“Doe*John*A”的正则表达式。

但是,我必须考虑该字符串的所有空格,因此“Doe , John , A”仍会转换为“Doe*John*A”。

此外,字符串“Doe John A”应转换为“Doe*John*A”。

我开始写这篇文章,但我认为我被空格和用户不提供逗号的可能性所困。

这是我所拥有的:

var myString = "John, Doe, A";
var myOtherString = "John Doe A";


var myFunction = function (aString) {
aString = aString.replace(", ", "*");
aString = aString.replace(", ", "*");

return aString;

};

这些都应该返回 "Doe*John*A"

我想我在这个函数中重复了太多。我也没有考虑不提供逗号的可能性。

有更好的方法吗?

最佳答案

是的,有。请改用带有正则表达式的 replace 函数。这有几个优点。首先,您不必再调用它两次。其次,考虑任意数量的空格和可选的逗号真的很容易:

aString = aString.replace(/[ ]*,[ ]*|[ ]+/g, '*');

请注意,空格周围的方括号是可选的,但我发现它们使空格字符更易于阅读。如果您想允许/删除那里的任何类型的空格(制表符和换行符),请改用 \s :

aString = aString.replace(/\s*,\s*|\s+,/g, '*');

请注意,在这两种情况下,我们都不能简单地将逗号设为可选,因为这将允许零宽度匹配,这将在字符串的每个位置引入 *。 (感谢 CruorVult 指出这一点)

关于javascript - 正则表达式用值替换所有逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13955904/

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