gpt4 book ai didi

javascript - javascript中的标题大小写和缩写

转载 作者:行者123 更新时间:2023-11-30 08:44:01 25 4
gpt4 key购买 nike

我正在尝试对一些包含公司名称及其股票代码的文本进行 Titlecase。

示例(这些字符串作为公司名称连接在一起,标题大小写,符号在括号中):AT&T (T)
约翰迪尔公司(德国)

这些公司名称来 self 们的数据库,它们来自股票定价服务。我让它工作,除了当名字是像 AT&T 这样的缩写时

那就是返回,你猜对了,就像 At&t。如何在缩写中保留套管。我想使用 indexof 来获取任何 & 的位置并将其两边的两个字符大写,但这看起来很老套。

沿着(伪代码)的方向

var indexPos = myString.indexOf("&");
var fixedString = myString.charAt(indexPos - 1).toUpperCase().charAt(indexPos + 1).toUpperCase()

糟糕,忘记包含我的标题函数

function toTitleCase(str) {
return str.replace(/([^\W_]+[^\s-]*) */g, function (txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
}

有更好的建议吗?

最佳答案

更好的title case函数可能是

function toTitleCase(str) {
return str.replace(
/(\b.)|(.)/g,
function ($0, $1, $2) {
return ($1 && $1.toUpperCase()) || $2.toLowerCase();
}
);
}
toTitleCase("foo bAR&bAz a.e.i."); // "Foo Bar&Baz A.E.I."

这仍然会将 AT&T 转换为 At&T,但是在其编写方式中没有信息可以知道要做什么,所以最后

// specific fixes
if (str === "At&T" ) str = "AT&T";
else if (str === "Iphone") str = "iPhone";
// etc
// or
var dict = {
"At&T": "AT&T",
"Iphone": "iPhone"
};
str = dict[str] || str;

当然,如果你能在一开始输入数据时就做好,那会省去很多麻烦

关于javascript - javascript中的标题大小写和缩写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23620905/

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