實例
<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*匹配字符后面的空格
―――――――――――――――――――分割線――――――――――――――――――
主站蜘蛛池模板:
在线免费毛片
|
久久精品一区二区三区不卡牛牛
|
五月在线视频
|
日本精品一区
|
国产精品视频一区二区三区麻豆
|
国产精品久久久久婷婷二区次
|
欧美成人在线免费
|
视频一区二区国产
|
米奇av
|
日韩久久网
|
成人国产精品
|
国产aaaaav久久久一区二区
|
天堂一区二区三区在线
|
国产精品视频久久久久
|
久久91精品国产
|
欧美一级免费观看
|
欧美极品视频
|
欧美日韩中文在线
|
亚洲欧美久久久
|
嫩草网站入口
|
爱爱免费视频网站
|
日韩三级在线
|
免费av在线网站
|
美女视频一区
|
久久久久久久久久久免费视频
|
色呦呦
|
日韩视频在线一区二区
|
色福利影院
|
激情一区二区三区
|
中文精品久久久
|
午夜在线
|
91久久国产综合久久
|
a天堂中文在线
|
午夜99|
综合久久久|
在线高清av|
亚洲一区免费看
|
亚洲精品视频在线观看免费
|
久久久久免费精品视频
|
亚洲美女网站
|
中文字幕国产视频
|