去除字符串左右两端的空格,在大部分编程语言中,比如PHP、vbscript里面可以轻松地使用 trim、ltrim 或 rtrim实现。但在js中却没有这3个内置方法,需要手工编写。下面的实现方法是用到了正则表达式,效率不错,并把这三个方法加入String对象的内置方法中去。
写成类的方法格式如下:(str.trim();)
01 |
<script language= "javascript" > |
02 |
String.prototype.trim= function (){ |
03 |
return this .replace(/(^\s*)|(\s*$)/g, "" ); |
05 |
String.prototype.ltrim= function (){ |
06 |
return this .replace(/(^\s*)/g, "" ); |
08 |
String.prototype.rtrim= function (){ |
09 |
return this .replace(/(\s*$)/g, "" ); |
写成函数可以这样:(trim(str))
01 |
<script type= "text/javascript" > |
02 |
function trim(str){ //删除左右两端的空格 |
03 |
return str.replace(/(^\s*)|(\s*$)/g, "" ); |
05 |
function ltrim(str){ //删除左边的空格 |
06 |
return str.replace(/(^\s*)/g, "" ); |
08 |
function rtrim(str){ //删除右边的空格 |
09 |
return str.replace(/(\s*$)/g, "" ); |
这是lgzx公司的一道面试题,要求给js的String添加一个方法,去除字符串两边的空白字符(包括空格、制表符、换页符等)。
1 |
String.prototype.trim = function () { |
2 |
//return this.replace(/[(^\s+)(\s+$)]/g,"");//會把字符串中間的空白符也去掉 |
3 |
//return this.replace(/^\s+|\s+$/g,""); // |
4 |
return this .replace(/^\s+/g, "" ).replace(/\s+$/g, "" ); |
JQuery1.4.2,Mootools 使用
2 |
return str.replace(/^(\s|\xA0)+|(\s|\xA0)+$/g, '' ); |
jQuery1.4.3,Prototype 使用,该方式去掉g以稍稍提高性能 在小规模的处理字符串时性能较好
2 |
return str.replace(/^(\s|\u00A0)+/, '' ).replace(/(\s|\u00A0)+$/, '' ); |
Steven Levithan 在进行性能测试后提出了在JS中执行速度最快的裁剪字符串方式,在处理长字符串时性能较好
02 |
str = str.replace(/^(\s|\u00A0)+/, '' ); |
03 |
for ( var i=str.length-1; i>=0; i--){ |
04 |
if (/\S/.test(str.charAt(i))){ |
05 |
str = str.substring(0, i+1); |
最后需要提到的是 ECMA-262(V5) 中给String添加了原生的trim方法(15.5.4.20)。此外Molliza Gecko 1.9.1引擎中还给String添加了trimLeft ,trimRight 方法。
最新文章
- ubuntu系统升级记录
- 一个经典实用的iptables shell脚本
- 微内核架构(Microkernel Architecture)
- XML文件的读取、序列化和反序列化操作
- bzoj 1501: [NOI2005]智慧珠游戏 Dancing Link
- OD: File Vulnerabilities &; Protocols &; Fuzz
- <;转>;让SVN用户能够修改自身密码的PHP页面
- uva208
- c# List根据某个属性进行分类,变成以属性名称作为分类的多个List
- NPOI DataSet导出excel
- ElasticSearch实践系列(三):探索数据
- 使用JAXB实现Bean与Xml相互转换
- bzoj3105
- python学习之老男孩python全栈第九期_第二周学习总结
- RF相关知识
- pig—WordCount analysis
- jQuery实现新浪微博自动底部加载的方法
- bzoj1067 降雨量
- [Jobdu] 题目1348:数组中的逆序对
- SqlLocalDB命令
热门文章
- iOS清除缓存功能开发
- INSPIRED启示录 读书笔记 - 第21章 产品验证
- INSPIRED启示录 读书笔记 - 第6章 招聘产品经理
- Docker 数据管理-tmpfs mounts
- 安装MySQL5.7.18遇到的坑
- juniper ssg 常用命令
- centos7 下安装eclipse
- Luogu-4022 [CTSC2012]熟悉的文章
- C#反射第一天
- Codeforces Round #280 (Div. 2) A , B , C