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 相关文章推荐
javascript之学会吝啬 精简代码
Apr 25 Javascript
Js 去掉字符串中的空格(实现代码)
Nov 19 Javascript
简体中文转换繁体中文(实现代码)
Dec 25 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
Feb 27 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
Aug 29 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
Oct 31 Javascript
jQuery实现所有验证通过方可提交的表单验证
Nov 21 jQuery
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
Dec 05 Javascript
微信小程序如何获取地址
Dec 24 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
Dec 01 Vue.js
JavaScript继承的三种方法实例
May 12 Javascript
JavaScript设计模式之原型模式详情
Jun 21 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设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
session 加入redis的实现代码
2016/07/15 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
2012/12/04 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
vue filters的使用详解
2018/06/11 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
go和python调用其它程序并得到程序输出
2014/02/10 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
迎元旦广播稿
2014/02/22 职场文书
施工单位安全责任书
2014/07/24 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
Python Parser的用法
2021/05/12 Python
Golang gRPC HTTP协议转换示例
2022/06/16 Golang