《献给你,我深爱的ECMAScript》之String篇
发布于
小春
本文主要说说ECMAScript6中新引入的String的api
第一个:startsWith
从语义化上不难知道:是判定某个指定的字符串是否从某个子字符开始的。
语法:
var startsWith = str.startsWith(searchString [,position]);
示例:
var str = "zhangyaochun for w3cplus"; str.startsWith("zhang"); //true str.startsWith("Zhang"); //false
评语:
其实现在流行的很多类库也有类似这样的api,我们来看看如果封装的?
//kissy 1.3 function startsWith(str,prefix){ return str.lastIndexOf(prefix,0) === 0; } //prototype 1.7 //http://api.prototypejs.org/language/String/prototype/startsWith/ function startsWith(pattern,position){ //严谨的参数控制 position = Object.isNumber(position) ? position : 0; return this.lastIndexOf(pattern,position) === position; }
第二个:endsWith
从语义化上也不难知道:是判定某个指定的字符串是否从某个子字符结束的
语法:
var endsWith = str.endsWith(searchString [,position]);
示例:
var str = "zhangyaochun for w3cplus"; str.endsWith("w3cplus"); //true str.endsWith("W3cplus"); //false
评语:
其实现在流行的很多类库也有类似这样的api,我们来看看如果封装的?
//prototype 1.7 //http://api.prototypejs.org/language/String/prototype/endsWith/ function endsWith(pattern){ var d = this.length - pattern.length; return d >= 0 && this.indexOf(pattern,d) === d; } //kissy 1.3 function endsWith(str,suffix){ //会判定字串与指定的字符串的长度对比 var ind = str.length - suffix.length; return ind >= 0 && str.indexOf(suffix,ind) == ind; }
两个方案基本一样,只是我更喜欢严谨的 ===
第三个:contains
从语义化上也不难知道:是判定某个指定的字符串是否含有另一个子字符串
语法:
var contained = str.contains(searchString [,position]);
示例:
var str = "zhangyaochun for w3cplus"; str.contains("w3cplus"); //true str.contains("zhangyaochun"); //true str.contains("you"); //false
评语:
其实现在流行的很多类库也有类似这样的api,我们来看看如果封装的?
//prototype 1.7 //http://api.prototypejs.org/language/String/prototype/include/ function include(pattern){ this.indexOf(pattern) > -1; }
第四个:repeat
从语义化上也不能知道:是判定某个指定的字符串是否含有另一个子字符串
语法:
var newString = str.repeat(count);
示例:
var str = "zhangyaochun for w3cplus"; str.repeat(2); //"zhangyaochun for w3cpluszhangyaochun for w3cplus"
评语:
其实现在流行的很多类库也有类似这样的api,我们来看看如果封装的?
//prototype 1.7 //http://api.prototypejs.org/language/String/prototype/times/ function times(count){ //有一层判定 return count < 1 ? '' : new Array(count +1).join(this); }
如需转载,烦请注明出处:https://www.fedev.cn/js/ecmascript-lesson-5.html
Nike LunarEpic Flyknit