时间:2021-05-18
ECMAScript5已经为字符串定义了原生的trim方法。这个方法可能比会比本文的任何版本的都要快。建议在支持的浏览器中使用原生函数。下面讲述的是自定义trim()函数遇到的问题,改进的过程。功夫在不断淬炼中才能醇正。
JavaScript中没有用于移除字符串头尾空白的原生修剪方法。最常见的自定义trim()函数实现如下所示:
复制代码 代码如下:
function trim(text) {
return text.replace(/^\s+|\s+$/g, ‘');
}
这种实现使用一个正则表达式匹配字符串开头和结尾的一或多个空白字符。replace()方法用空字符串替换所有匹配的部分。
然而这个实现方式有个基于正则表达式的性能问题,这种影响来自两个方面:一方面是指明有两个匹配模式的管道运算符,另一方面是指明全局应用该模式的g标记。
考虑到这些,可以将正则表达式一分为二并去掉g标记来重写该函数,稍稍提高它的速度。
复制代码 代码如下:
function trim(text) {
return text.replace(/^\s+/, ‘').replace(/\s+$/, ‘');
}
另一个改进的版本。保证正则表达式尽可能地简单。
复制代码 代码如下:
function trim(text) {
//删除字符串的头部空白
text = text.replace(/^\s+/, ‘');
// 循环清除尾部空白
for(var i=text.length; i--; ) {
if(/\S/.test(text.charAt(i))) { // \S 非空白字符
text = text.substring(0, i+1);
break;
}
}
return text;
}
使用建议:第2个trim()函数在小规模处理短字符串时性能还是好的。而第3个trim函数在处理长字符串时明显更快。
题外话:简单的裁剪字符串首尾空白字符函数,引发了对正则表达式的性能问题的考虑并实现规避性能问题的方法。技术追求完美,只能在实践中前行。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.组件js(function($){//自定义去除字符串两边空白String.prototype.trim=function(){returnthis.rep
PHP简单生成随机字符串自定义方法/***生成随机字符串*@paramstring$lenth长度*@returnstring字符串*/functionge
定义和用法trim()函数从字符串的两端删除空白字符和其他预定义字符。语法trim(string,charlist)参数描述string必需。规定要检查的字符串
实例向用户自定义函数发送数组中的值,并返回一个字符串:定义和用法array_reduce()函数向用户自定义函数发送数组中的值,并返回一个字符串。注释:如果数组
本文实例讲述了C#自定义字符串补0函数。分享给大家供大家参考。具体分析如下:这个函数用于在字符串前面进行补0操作,直到字符串达到需要的长度,比如字符串:8476