js去字符串前后空格5种实现方法及比较


Posted in Javascript onApril 03, 2013

我们在项目中如果写到注册的时候,用户输入空格,我们怎么来剔除空格呢?
下面是我经常用到的js与大家分享下:

第一种:循环检查替换
[javascript]

//供使用者调用 
function trim(s){ 
return trimRight(trimLeft(s)); 
} 
//去掉左边的空白 
function trimLeft(s){ 
if(s == null) { 
return ""; 
} 
var whitespace = new String(" \t\n\r"); 
var str = new String(s); 
if (whitespace.indexOf(str.charAt(0)) != -1) { 
var j=0, i = str.length; 
while (j < i && whitespace.indexOf(str.charAt(j)) != -1){ 
j++; 
} 
str = str.substring(j, i); 
} 
return str; 
} 
//去掉右边的空白 3water.com 
function trimRight(s){ 
if(s == null) return ""; 
var whitespace = new String(" \t\n\r"); 
var str = new String(s); 
if (whitespace.indexOf(str.charAt(str.length-1)) != -1){ 
var i = str.length - 1; 
while (i >= 0 && whitespace.indexOf(str.charAt(i)) != -1){ 
i--; 
} 
str = str.substring(0, i+1); 
} 
return str; 
}

第二种:正则替换
[javascript]
<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
String.prototype.Trim = function() 
{ 
return this.replace(/(^\s*)|(\s*$)/g, ""); 
} 
String.prototype.LTrim = function() 
{ 
return this.replace(/(^\s*)/g, ""); 
} 
String.prototype.RTrim = function() 
{ 
return this.replace(/(\s*$)/g, ""); 
} 
//--> 
</SCRIPT>

第三种:使用jquery
[javascript]
$.trim(str)

jquery内部实现为:
[javascript]
function trim(str){ 
return str.replace(/^(\s|\u00A0)+/,'').replace(/(\s|\u00A0)+$/,''); 
}

第四种:使用motools
[javascript]
function trim(str){ 
return str.replace(/^(\s|\xA0)+|(\s|\xA0)+$/g, ''); 
}

第五种:裁剪字符串方式
[javascript]
function trim(str){ 
str = str.replace(/^(\s|\u00A0)+/,''); 
for(var i=str.length-1; i>=0; i--){ 
if(/\S/.test(str.charAt(i))){ 
str = str.substring(0, i+1); 
break; 
} 
} 
return str; 
}

经过测试第五种方法在处理长字符串时效率最高
<script type="text/JavaScript"> 
//去掉空格 
function SystemTrim(str) { 
var regExp = /(^\s*)|(\s*$)/; 
return str.replace(regExp,""); 
} 
//调用 
function add() 
{ 
var ownername=document.form1.ownername.value; 
if(SystemTrim(ownername)=="") 
{ 
alert("请输入您的称呼!"); 
return; 
} 
} 
<script>
Javascript 相关文章推荐
你的编程语言可以这样做吗?
Sep 07 Javascript
javascript URL编码和解码使用说明
Apr 12 Javascript
jquery focus(fn),blur(fn)方法实例代码
Dec 16 Javascript
网站内容禁止复制和粘贴、另存为的js代码
Feb 26 Javascript
java、javascript实现附件下载示例
Aug 14 Javascript
什么是 AngularJS?AngularJS简介
Dec 06 Javascript
Bootstrap多级菜单的实现代码
May 23 Javascript
vue-router单页面路由
Jun 17 Javascript
Angularjs使用过滤器完成排序功能
Sep 20 Javascript
浅谈vue父子组件怎么传值
Jul 21 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
Mar 10 Javascript
基于Electron实现桌面应用开发代码实例
Jul 07 Javascript
终于解决了IE8不支持数组的indexOf方法
Apr 03 #Javascript
jQuery布局插件UI Layout简介及使用方法
Apr 03 #Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
Apr 02 #Javascript
JS获取浏览器版本及名称实现函数
Apr 02 #Javascript
js 火狐下取本地路径实现思路
Apr 02 #Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
Apr 02 #Javascript
JQuery给元素添加/删除节点比如select
Apr 02 #Javascript
You might like
PHP 强制下载文件代码
2010/10/24 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
javascript权威指南 学习笔记之变量作用域分享
2011/09/28 Javascript
javascript数组的使用
2013/03/28 Javascript
使用jQuery mobile库检测url绝对地址和相对地址的方法
2015/12/04 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
2016/12/16 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
解读ES6中class关键字
2017/11/20 Javascript
jquery实现进度条状态展示
2020/03/26 jQuery
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
python代码制作configure文件示例
2014/07/28 Python
在Python中使用成员运算符的示例
2015/05/13 Python
详解Python装饰器
2019/03/25 Python
基于opencv实现简单画板功能
2020/08/02 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
CSS类名支持中文命名的示例
2014/04/04 HTML / CSS
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
廉洁使者实施方案
2014/03/29 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
个人年底工作总结
2015/03/10 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
未婚证明格式
2015/06/15 职场文书
oracle覆盖导入dmp文件的2种方法
2021/05/21 Oracle
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
Java移除无效括号的方法实现
2021/08/07 Java/Android
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis