javascript中使用正则表达式实现删除字符串中的前后空格

所属分类: 网络编程 / 正则表达式 阅读数: 2061
收藏 0 赞 0 分享
实例
复制代码 代码如下:

<script>
var str=" yexj00 ";
str=str.replace(/^s*|s*$/g,'');
alert(str);
</script>

实例
模仿RTrim:
复制代码 代码如下:

<script>
var str="yexj00 ";
str=str.replace(/s*$/g,'');
alert(str);
</script>

实例

代码以及测试代码如下:
复制代码 代码如下:

<script type="text/javascript">
//删除字符串两侧的空白字符。
function trim(str){
return str.replace(/^s+|s+$/g,'');
}
//删除字符串左侧的空白字符。
function ltrim(str){
return str.replace(/^s+/g,'');
}
//删除字符串右侧的空白字符。
function rtrim(str){
return str.replace(/s+$/g,'');
}
//以下为测试代码
var trimTest = " 123456789 ";
//前后各有一个空格。
document.write('length:'+trimTest.length+'<br />');
//使用前
document.write('ltrim length:'+ltrim(trimTest).length+'<br />');
//使用ltrim后
document.write('rtrim length:'+rtrim(trimTest).length+'<br />');
//使用rtrim后
document.write('trim length:'+trim(trimTest).length+'<br />');
//使用trim后
</script>

测试的结果如下:
复制代码 代码如下:

length:11
ltrim length:10
rtrim length:10
trim length:9

用js正则表达式删除字符串前后空格
复制代码 代码如下:

String.prototype.trim=function(){
var reSpace=/^\s*(.*?)\s*$/;
return this.replace(reSpace,”$1″);
};

让我们分析一下第二行的正则表达式
^ 行开始
\s*
匹配字符前面的所有空格,贪婪模式重复
(.*?)
捕获组,勉强模式重复匹配任意字符,也就是我们最终需要(去掉前后空格后)的字符,这个不是很好理解(我认为)
第一:我原来认为在捕获组内也应该判断第一个字符应该不能为空格即写成([^\s+])的形式,但这是完全没有必要的因为捕获组前面的\s*已经能捕获开头的所有的空格字符了,你认为的捕获组的字符开始范围与正则表达式匹配的字符范围是不一样的,汗~有点说不清楚了,呵呵
第二:其中?的作用,他的作用就是勉强模式重复前面的字符,什么意思呢?就是如果我用(.*a)去匹配aaaaaaa字符串的结果就是(aaaaaaa)源字符串这叫贪婪模式,如果用(.*?a)去匹配aaaaaaa的话他就会先匹配第一a,然后是第二个a,然后是第三个a…….这就叫勉强模式匹配有的地方也叫懒惰模式匹配。通俗一点(大家都喜欢通俗的解释,呵呵)就是前者是从后往前去匹配尽可能多的字符,而后者是从前往后匹配
第三:我们还要不要去关心捕获组中后面的空格呢?因为捕获组中的”.”也是可以匹配空格的,先前我也是考虑这个问题大部分时间都浪费在这上面了.其实这和考虑要不要排除捕获组前面的空格一样的道理,后面的\s*已经给我们处理了
\s*匹配字符后面的空格
———————————————————分割线——————————————————–
自定义三个trim()函数来过滤字符串左右两边的空格。
复制代码 代码如下:

//js去除空格函数
//此处为string类添加三个成员
String.prototype.Trim = function(){ return Trim(this);}
String.prototype.LTrim = function(){return LTrim(this);}
String.prototype.RTrim = function(){return RTrim(this);}
//此处为独立函数
function LTrim(str)
{
var i;
for(i=0;i<str.length;i++)
{
if(str.charAt(i)!=” “&&str.charAt(i)!=” “)break;
}
str=str.substring(i,str.length);
return str;
}
function RTrim(str)
{
var i;
for(i=str.length-1;i>=0;i–)
{
if(str.charAt(i)!=” “&&str.charAt(i)!=” “)break;
}
str=str.substring(0,i+1);
return str;
}
function Trim(str)
{
return LTrim(RTrim(str));
}

———————————————————分割线——————————————————–
复制代码 代码如下:

<script type=”text/javascript”>
function trim(str){ //删除左右两端的空格
return str.replace(/(^\s*)|(\s*$)/g, “”);
}
function ltrim(str){ //删除左边的空格
return str.replace(/(^\s*)/g,”");
}
function rtrim(str){ //删除右边的空格
return str.replace(/(\s*$)/g,”");
}
</script>
function checkSubmit(){
if(confirm(“是否确认保存数据?”)){
var ab = document.getElementById(“name”).value;
var dj = document.getElementById(“dj”).value;
var xy = ab.replace(/(^\s*)|(\s*$)/g, “”);
if(xy!=”"&&dj!=”"){
document.dwbzjlspb.action = “”;
document.dwbzjlspb.submit();
return true;
}else{
alert(“单位名称或拟申报等级不能为空!”);
}
}else{
return false;
}
};
更多精彩内容其他人还在看

匹配移动/联通/电信手机号码正则表达式小结

接下来为大家详细介绍下匹配移动/联通/电信手机号码正则表达式,具体实现代码如下,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

php匹配网址的正则 几乎可以匹配任何网址

php匹配网址的正则 几乎可以匹配任何网址,需要的朋友可以参考下
收藏 0 赞 0 分享

javascript中使用正则表达式进行字符串验证示例

我写的一个表达式验证示例:功能如下:用户名,不能为空;密码6为数字;密码确认,两次输入密码必须相同;身份证号码必须是15位,或者是18位,最末尾也可以是X
收藏 0 赞 0 分享

如何使用JavaScript和正则表达式进行数据验证

利用客户端JavaScript的优势,JavaScript中的正则表达式可以简化数据验证的工作,下面与大家分享下如何使用JavaScript和正则表达式进行数据验证,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

JS、replace利用正则表达式替换SQL所有参数为指定格式的数据

JS、replace 利用正则表达式一次性替换SQL所有参数(带冒号)转为数据,具体的实现思路及代码如下,感兴趣的朋友可以参考下哈,希望对你有所帮助
收藏 0 赞 0 分享

常用的JQuery数字类型验证正则表达式整理

本文整理了一些常用的数字类型验证正则,希望大家在使用过程中可以参考下
收藏 0 赞 0 分享

PHP preg_match的匹配多国语言的技巧

这篇文章主要是介绍了PHP preg_match中匹配多国语言的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

javascript正则表达式容易被忽略的小问题整理

小问题:lastIndex只对exec()和test()方法起作用,string.match(regexp)是不会影响regexp这个正则的lastIndex属性的,具体祥看本文
收藏 0 赞 0 分享

正则表达式概述 什么是正则表达式 .

正则表达式就是用某种模式去匹配一类字符串的公式,主要用来描述字符串匹配的工具
收藏 0 赞 0 分享

ajax对注册名进行验证检测是否存在于数据库中

使用ajax对注册名进行验证判断它是否在数据库中存在,具体的实现如下,感性的朋友可以参考下,希望对大家有所帮助
收藏 0 赞 0 分享
查看更多