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

实例

代码如下:

<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;

}

};

转载请注明:代码学堂>编程开发 > 正则学习 > javascript中使用正则表达式实现删除字符串中的前后空格

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!10210454@qq.com
2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!

磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持

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

提供最优质的资源集合

立即查看 了解详情