繁体   English   中英

如何将字符串的rest的首字母大写小写

[英]How to capitalize first letter and lowercase the rest of the string

我试图将句子中第一个单词的第一个字母大写。

这是 tsx 文件中的数据 { this.text({ id: downloadPriceHistory , defaultMessage: 'Download Price History' }) } 上面显示的 id 来自数据库,可以将其发送到各种 forms 中的 api。

我试图在下面使用这个逻辑:

export function titleCase(string) {
    string = 'hello World';
    const sentence = string.toLowerCase().split('');
      for (let i = 0; i < sentence.length; i++) {
          sentence[i] = sentence[i][0].toUpperCase() + sentence[i];
    }
     return sentence;

}

例如,对于输入"Download Price History" ,结果应该是"Download price history"

您只需要将第一个字母大写并将其连接到转换为小写的字符串的 rest 即可。

 function titleCase(string){ return string[0].toUpperCase() + string.slice(1).toLowerCase(); } console.log(titleCase('Download Price History'));

这也可以通过 CSS 来实现,方法是将整个元素的text-transform设置为lowercase ,并使用::first-letter伪元素将text-transform设置为uppercase

 .capitalize-first { text-transform: lowercase; }.capitalize-first::first-letter { text-transform: uppercase; }
 <p class="capitalize-first">Download Price History</p>

使用 ES6 模板字符串功能:

const titleCase = str => `${str[0].toUpperCase()}${str.slice(1).toLowerCase()}`

尝试 - 将字符串的 rest 也设为小写。

export function titleCase(string) {
     return string[0].toUpperCase() + string.substr(1).toLowerCase()
}

使用 CSS:

p {
  text-transform: lowercase;
}
p::first-letter {
  text-transform: uppercase
}

使用 JS:

const capitalize = (s) => s.charAt(0).toUpperCase() + s.slice(1).toLowerCase();

为什么不只是小写整个字符串,而大写只是新字符串的第一个字母?

function titleCase(string) {
    let sentence = string.toLowerCase();
    let titleCaseSentence = sentence.charAt(0).toUpperCase() + sentence.substring(1, sentence.length);
    return titleCaseSentence;
}

(此外,您正在使用第一行将参数擦除到 function)

    string = 'hello World';

我的建议是您获取字符串的第一个元素并输入大写字母并获取字符串的 rest 并应用小写字母 function。

titleCase(string) {
  return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
}

如果你想要正则表达式,在一行中:

str.replace(/^(\w)(.+)/, (match, p1, p2) => p1.toUpperCase() + p2.toLowerCase())

解释

它将字符串分成 2 组,第一个字符(\w)和其余字符(.+) ,第一组大写,第二组小写。

 let str = 'the quick brown FOX' str = str.replace(/^(\w)(.+)/, (match, p1, p2) => p1.toUpperCase() + p2.toLowerCase()) console.log(str)

已经提供了很好的答案,但我只是使用替换添加不同的方法以防万一有人需要它。

export function titleCase(string) {
string = 'hello World';
const sentence = string.toLowerCase();
let normalCaseString = sentence.replace(sentence[0], sentence[0].toUpperCase();
}
 return normalCaseString;
}

它的工作方式是我们使用replace()字符串方法将sentence变量中的第一个字母与它的大写版本交换。 replace 方法有两个参数,第一个是要替换的部分,第二个是要替换的部分。

语法: replace(pattern, replacement)

根据 MDNpattern

可以是字符串或带有Symbol.replace方法的 object — 典型示例是正则表达式。 任何没有Symbol.replace方法的值都将被强制转换为字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM