js字符串处理函数

  1. String.fromCharCode(num1, …, numN) :返回由指定的UTF-16代码单元序列创建的字符串;String.fromCharCode() 方法不能单独获取在高代码点位上的字符;需要使用String.fromCodePoint(num1[, …[, numN]]);

    String.fromCharCode(48, 49, 50);	// '012'
    
    
  2. String.prototype.anchor(name):创建一个name属性为name的html <a>标签锚点;返回值为一个html字符串

    var str = 'Hello World!';
    document.body.innerHTML = str.anchor('greet');
    // "<a name="greet">Hello World!</a>"
    
  3. str.charAt(index):返回指定位置index处的字符;index默认为0;index超出str.length返回空字符串;

  4. str.charCodeAt(index):返回指定位置index处字符对应的UTF-16编码,超出范围返回NaN;完整的代码点获取需要使用str.codePointAt();

  5. str.concat(string2, string3[, …, stringN]):字符串拼接,参数可选;返回一个新字符串,不会改变原字符串;由于性能原因,强烈建议使用+ +=代替concat()方法;

  6. str.endsWith(searchString[, length]) | str.startsWith(searchString[, position]):判断str是否是以searchString结尾的;length可选,默认去str.length;返回值为布尔类型;demo来自MDN, 参考文献2

    var str = "To be, or not to be, that is the question.";
    
    alert( str.endsWith("question.") );  // true
    alert( str.endsWith("to be") );      // false
    alert( str.endsWith("to be", 19) );  // true
    
  7. str.includes(searchString[, position]):str从position位置搜索是否包含子串searchString;position可选,默认为0;方法区分大小写;返回值为布尔类型;

    'Hello'.includes('hello');			// false
    'Hello'.includes('Hello');			// true
    'Hello'.includes('Hello', 1);		// false
    'Hello'.includes('Hello', 'world');	// true
    
  8. str.indexOf(searchValue[, fromIndex]):返回String对象中第一次出现searchValue的索引值,未找到返回-1;fromIndex可选;方法区分大小写; 如果str为空字符串,fromIndex<0返回0,fromIndex<=str.length返回fromIndex,fromIndex>str.length则返回str.length;

    对应有str.lastIndexOf(searchValue[, fromIndex]),其搜索顺序是从右至左;

    var str = 'Hello World!';
    str.length;				// 12
    str.indexOf('', -2)		// 0
    str.indexOf('', 2)		// 2
    str.indexOf('', 12)		// 12
    str.indexOf('', 15)		// 12
    
    
  9. str.match(re):该方法接受一个正则表达式作为入参,传入非正则表达式对象时会被new RegExp(obj)隐式转换;未传参则返回一个包含空字符的数组对象;默认非全局匹配,可以传入g进行全局匹配;全局匹配时,返回所有匹配结果,不会返回捕获组,未匹配返回null;非全局匹配时,仅返回第一个匹配结果,此时数组对象具有groups(捕获组或undefined)、index(首次匹配的初始索引)、input(str字符串)属性,未匹配返回null;

    如果正则表达式不包含 g 标志,str.match() 将返回与 RegExp.exec(). 相同的结果。

    var str = 'Hello World!';
    str.match();			// ["", index: 0, input: "Hello World!", groups: undefined]
    str.match(/l/g);		// ["l", "l", "l"]
    str.match(/ll/g);		// ["ll"]
    str.match(/ll/);		// ["ll", "ll", index: 2, input: "Hello World!", groups: undefined]
    str.match(/(l)(l)/);	//  ["ll", "l", "l", index: 2, input: "Hello World!", groups: undefined]
    
  10. str.padStart(targetLength [, padStr]) | str.padEnd(targetLength [, padStr]):使用指定字符串对str进行扩展;targetLength小于str.length则返回str;padStr可选,默认为’ ',返回新字符串,不改变源字符串

  11. str.repeat(count):字符串重复方法,count非负整数;count不传返回空字符串;返回新字符串,不改变源字符串

    var str = 'abc';
    str.repeat();		// ''
    str.repeat(0);		// ''
    str.repeat(1);		// 'abc'
    str.repeat(2);		// 'abcabc'
    
  12. str.replace(regexp|substr, newSubstr|callback(match, p1, p2, …, offset, string)):字符串替换函数;第一个参数接收正则表达式或字符串表示需要被替换的子串,这里传入字符串不会被隐式转换为正则表达式对象;第二个参数表示用于替换的新子串或者替换的方法;返回一个新字符串

    match匹配到的子串, p1…pn第i个捕获组,offset匹配的子串在str中的起始索引,string整个字符串;

    第二个参数使用字符串形式时,通过$可以访问一些特定的字符串;

    符号含义
    $$$
    $&匹配到的字符串
    n第n个捕获组
    var str = 'abc12345#$*%';
    var re = /([^\d]*)(\d*)([^\w]*)/;
    str.replace(re, '$$');				// '$'
    str.replace(re, '$&');				// 'abc12345#$*%'
    str.replace(re, '$1-$2-$3');		// "abc-12345-#$*%"
    
    str.replace(re, function (match, p1, p2, p3, offset, string) {
    	return [p1, p2, p3].join('~') + offset;
    });									// "abc~12345~#$*%0"
    
  13. str.search(regexp):接收参数为正则表达式,否则进行隐式转换;返回匹配位置的初始索引,未传参返回0;

  14. str.slice(beginIndex[, endIndex]):beginIndex必选,为负时转为str.length+beginIndex,beginIndex大于等于str.length返回空字符串;endIndex可选,为负时转为str.length+endIndex;

  15. str.split([separator[, limit]]):两个参数均为可选;limit用于限制返回数组的长度;使用正则表达式作为分隔符时,如果存在捕获组,捕获组结果也会出现在最终的数组中;

    var str = 'You should know: No zuo, no die.';
    str.split();		// ["You should know: No zuo, no die."]
    str.split(/n/ig);	// ["You should k", "ow: ", "o zuo, ", "o die."]
    str.split(/(n)/ig); // ["You should k", "n", "ow: ", "N", "o zuo, ", "n", "o die."]
    str.split(' ', 3);	// ["You", "should", "know:"]
    
    /* 字符串反转 */
    str.split('').reverse().join('');	// ".eid on ,ouz oN :wonk dluohs uoY"
    
  16. str.substr(start[, length]):start可以为正或负,但是其绝对值均应小于str.length,负值表示从字符串末尾计算,start默认值为0;length省略或undefined则截取到字符串结束,为负则取0;

    var str = 'You should know: No zuo, no die.';
    len	= str.length;	// 32
    str.substr();		// "You should know: No zuo, no die."
    str.substr(20);		// "zuo, no die."
    str.substr(33);		// ""
    str.substr(-6);		// "o die."
    str.substr(-34);	// "You should know: No zuo, no die."
    str.substr(20, 3);	// "zuo"
    str.substr(20, null);		// ""
    str.substr(20, undefined);	// "zuo, no die."
    
  17. str.substring(indexStart[, indexEnd]):indexEnd可选;任一参数小于0认为是0,任一参数为NaN当做是0;任一参数大于str.length认为是str.length;indexStart>indexEnd则交换两者;indexStart=indexEnd则返回空字符串;

    var str = 'substring';
    str.substring();			// 'substring'
    str.substring(3);			// 'string'
    str.substring(0, 3);		// 'sub'
    str.substring(3, 0);		// 'sub'
    str.substring(3, NaN);		// 'sub'
    str.substring(3, 20);		// 'string'
    str.substring(NaN, NaN);	// ''
    
    
  18. str.toUpperCase() | str.toLowerCase():不会改变原字符串

  19. str.trim() | str.trimStart() | str.trimEnd():空字符移除方法;不会改变原字符串

    var str =' Hia Hia~ ';
    str.trim();			// "Hia Hia~"
    str.trimStart(); 	// "Hia Hia~ "
    str.trimEnd();		// " Hia Hia~"
    

参考文献:

  1. https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/concat
  2. https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
  3. https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/match
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Neil-

你们的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值