javaScript面试题:小骆驼式命名法和下划线法命名法的互相转换

原创面试题

上周我在一篇介绍正则表达式实例的文章中,写了这么一个面试题:将字符串"the-first-name"变成小驼峰样式。

//面试题: 将字符串"the-first-name"变成小驼峰样式
var reg7 = /-(\w)/g;
var str7 = "the-first-name";
console.log(str7.replace(reg7,function(name, $1){
    return $1.toUpperCase();
}));//theFirstName

如果将上述面试题,反过来问,该怎么回答呢?
反过来问:

面试题:请将小驼峰命名法写的变量和函数的名字theFirstName,转换成下划线命名法的样式"the_first_name".

(注:the-first-name这种命名法不常见,所以改成the_first_name)

var reg7 = /[A-Z]/g;
var str7 = "theFirstName";
console.log(str7.replace(reg7,function($1){
  return '_' + $1.toLowerCase();
}));//the_first_name  

这是直接写的方法,咱们还是把它封装成函数吧:

//封装成函数的写法
 function styleUnderline(name){
    function addUnderline(match){
return '_' + match.toLowerCase();
    }
    return name.replace(/[A-Z]/g, addUnderline);
  }
  console.log(styleUnderline('theFirstName'));//the_first_name

这样,使用时,直接调用函数styleUnderline()即可。

最后,在回顾并修改一下上次写的面试题,

面试题:请将下划线命名法写的变量和函数的名字"the_first_name",转换成小驼峰命名法的样式"theFirstName".

var reg7 = /_(\w)/g;
var str7 = "the_first_name";
console.log(str7.replace(reg7,function(name, $1){
    return $1.toUpperCase();
}));//theFirstName

同样的,我们把它也封装成函数:

function styleCamelCase(name){
    function addCamelCase(match, $1){
return $1.toUpperCase();
    }
    return name.replace(/_(\w)/g, addCamelCase);
  }
  console.log(styleCamelCase('the_first_name'));//theFirstName
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,859评论 1 45
  • 据说,我家今年种的豌豆是杂交的 我仔细观察它的颗粒,小苗,叶片 与一般品种并无二致 直到今天,我从地边经过 花开成...
    吻章阅读 243评论 0 0
  • 架构师定义 百度百科,系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型...
    Java架构师Carl阅读 195评论 0 2
  • 文/不可言先生 在草木茂盛的大森林里,住着许多动物,每个动物都有亲人和朋友。 有一只白色的小熊,它从来没有见过自己...
    不可言先生阅读 868评论 1 6