今天看到一个这样的基础js面题。就是让写一个字符串转成驼峰的方法:
如:border-bottom-color 》 borderBottomColor
想想应该有两种方法:
1,用传统的字符串操作。
2,用正则表达式的方法。
首先我们看看第一种的实现原理:我们要把-b和-c转成大写的B和C。那么我们可以用split()方法来进行分割
利用toUpperCase()方法来转大写。最后用join()方法来拼接。
OK
var str = "border-bottom-color"; function test(str){ var arr = str.split("-");//用split()函数来进行分割字符串arr里面包括【border,bottom,color】 for(var i=1;i<arr.length;i++){//从数组的第二项开始循环,charAt(0)找到第一个字母。substring(1)截掉第一个字母。 arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1);//循环之后把得到的字符赋给arr。【border,Bottom, Color】 alert(arr[i]); } return arr.join("");//用join方法来拼接,空拼接。就变成borderBottomColor } alert(test(str));
很好理解
然后我们用正则表达式来完成转换。如果了解正则的人会觉得很容易的。
var str = "border-bottom-color"; function test(str){ var re = /-(\w)/g;//通过正则找到-b -c。默认的是匹配一次,所以要用g来全局匹配。\w指的字符。找一个-找一个字符。replace替换就是B替换-b C替换-c。 $0代表正则,$1代表指向 return str.replace(re, function($0,$1){ return $1.toUpperCase(); }); } alert(test(str));