资讯专栏INFORMATION COLUMN

【译】JS基础算法脚本:子字符首字符大写

Worktile / 3177人阅读

摘要:一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。返回值一个部分或全部匹配由替代模式所取代的新的字符串。

需求

给出一字符串,返回子字符首字符大写的字符串

titleCase("I"m a little tea pot") should return "I"m A Little Tea Pot".
思路1

字符串小写后切割为数组

for循环操作数组元素的首字符

拼接字符

function titleCase(str) {
    var newArr = str.toLowerCase().split(" ");
    for(var i=0; i
思路2

字符串小写后切割为数组

利用map方法对数组元素统一风格化

function titleCase(str) {
    var newArr = str.toLowerCase().split(" ");
    newArr = newArr.map(function(val) {
        return val.replace(val[0],val[0].toUpperCase);
    });
    
    return newArr.join(" ");
}
titleCase("I"m a little tea pot");
思路三

直接对字符串小写化,replace操作

function titleCase(str) {
    return str.toLowerCase().replace(/(^|s)S/g, (val) => val.toUpperCase());
}
titleCase("I"m a little tea pot");
总结

三种思路其实都是先转化为小写字符,再通过str.replace()替换匹配项

相关
str.split()

匹配separation来分割字符串,返回新数组,不改变原数组

str.replace(regexp|substr, newSubstr|function)

regexp (pattern)
一个 RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。

substr (pattern)
一个要被 newSubStr 替换的字符串。其被视为一整个字符串,而不是一个正则表达式。仅仅是第一个匹配会被替换。

newSubStr (replacement)
用于替换掉第一个参数在原字符串中的匹配部分的 字符串。该字符串中可以内插一些特殊的变量名。参考下面的使用字符串作为参数。

function (replacement)
一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。参考下面的指定一个函数作为参数。

返回值
一个部分或全部匹配由替代模式所取代的新的字符串。

有其他好的方法或思路的道友,不妨在沙发区神交一番。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84753.html

相关文章

  • fastjson转换json时,碰到的那些首字母大小写转换的坑!

    摘要:某年某月的某一天,本汪在某个奇葩的公司,接手了某个奇葩的项目,遇到了一些奇葩的事情,就掉进关于做转换时,那些关于首字符大小写的坑。坑首字符小写,第二个字符大写的键名这个坑与相关,严格来说,应该是挖的坑。 某年某月的某一天,本汪在某个奇葩的公司,接手了某个奇葩的项目,遇到了一些奇葩的事情,就掉进关于fastjson做bean to json转换时,那些关于首字符大小写的坑。 这个奇葩项目...

    tyheist 评论0 收藏0
  • JS基础算法脚本:查找串中最长的

    摘要:返回一组数中的最大值。返回数组中所有元素的连接起来的字符串,参数默认为,根据返回一个从开始参数到结束参数的新数组,不改变原数组有其他好的方法或思路的道友,不妨在沙发区神交一番。 需求 给出一个字符串,查找字符串中最长的子字符,并返回其长度 findLongestWord(Google do a barrel roll) 思路1 字符串分割 循环判定,暂存较大值 循环结束,返回最大值...

    forsigner 评论0 收藏0
  • JS基础算法脚本:回文检测

    摘要:返回一个新的字符串,表示串转换为小写的调用字符。不会影响字符串本身的值。返回一个包含子字符的数组,确定分割位置。将数组中所有子元素拼接成一个字符串,不改变原数组。 需求 给出一个字符串,检测是否是回文,是则返回true,不是则返回false(忽略标点符号,大小写,空格) palindrome(A man, a plan, a canal. Panama) should return t...

    Turbo 评论0 收藏0
  • 自动翻程序员英语

    摘要:自动翻译程序员英语桌面应用将中文翻译成程序员英文驼峰写法等网页应用调用翻译接口字母大写把字符串中的首字符转换为大写。 自动翻译程序员英语 1、桌面应用 将中文翻译成...

    leoperfect 评论0 收藏0
  • JS基础算法脚本:验证包含关系

    摘要:需求给出一个包含两个字符串的数组。方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回或。方法为数组中的每个元素执行一次函数,直到它找到一个使返回表示可转换为布尔值的值的元素。有其他好的方法或思路的道友,不妨在沙发区神交一番。 需求 给出一个包含两个字符串的数组。验证第二个字符的子字符全被第一个字符包含(忽略大小写)是则返回true;否则返回false mutation([he...

    isaced 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<