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 相关文章推荐
基于jQuery实现点击同时更改两个iframe的网址
Jul 01 Javascript
javascript奇异的arguments分析
Oct 20 Javascript
js 页面关闭前的出现提示的实现代码
May 25 Javascript
实现web打印的各种方法介绍及实现代码
Jan 09 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
Nov 10 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
jquery实现的导航固定效果
Apr 28 Javascript
JavaScript核心语法总结(推荐)
Jun 02 Javascript
Ionic快速安装教程
Jun 03 Javascript
vue 请求后台数据的实例代码
Jun 22 Javascript
详解node.js中的npm和webpack配置方法
Jan 21 Javascript
vue项目引入Iconfont图标库的教程图解
Oct 24 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 If Else(elsefi) 语句
2013/04/07 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
php分页代码学习示例分享
2014/02/20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
php实现的双向队列类实例
2014/09/24 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
js身份证验证超强脚本
2008/10/26 Javascript
JavaScript Perfection kill 测试及答案
2010/03/23 Javascript
js 通用javascript函数库整理
2011/08/14 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
耐克中国官方商城:Nike中国
2018/10/18 全球购物
西雅图的买手店:Totokaelo
2019/10/19 全球购物
美丽家庭事迹材料
2014/05/03 职场文书
公司任命书模板
2014/06/06 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
优秀教师推荐材料
2014/12/16 职场文书
团组织推优材料
2014/12/29 职场文书
2015年环保局工作总结
2015/05/22 职场文书
HTML+CSS+JS实现图片的瀑布流布局的示例代码
2021/04/22 HTML / CSS
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
关于mysql中string和number的转换问题
2022/06/14 MySQL