主頁(yè) > 知識(shí)庫(kù) > javascript中使用正則表達(dá)式實(shí)現(xiàn)刪除字符串中的前后空格

javascript中使用正則表達(dá)式實(shí)現(xiàn)刪除字符串中的前后空格

熱門(mén)標(biāo)簽:電子圍欄 Linux服務(wù)器 科大訊飛語(yǔ)音識(shí)別系統(tǒng) Mysql連接數(shù)設(shè)置 團(tuán)購(gòu)網(wǎng)站 阿里云 服務(wù)器配置 銀行業(yè)務(wù)
實(shí)例
復(fù)制代碼 代碼如下:

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

實(shí)例
模仿RTrim:
復(fù)制代碼 代碼如下:

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

實(shí)例

代碼以及測(cè)試代碼如下:
復(fù)制代碼 代碼如下:

script type="text/javascript">
//刪除字符串兩側(cè)的空白字符。
function trim(str){
return str.replace(/^s+|s+$/g,'');
}
//刪除字符串左側(cè)的空白字符。
function ltrim(str){
return str.replace(/^s+/g,'');
}
//刪除字符串右側(cè)的空白字符。
function rtrim(str){
return str.replace(/s+$/g,'');
}
//以下為測(cè)試代碼
var trimTest = " 123456789 ";
//前后各有一個(gè)空格。
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>

測(cè)試的結(jié)果如下:
復(fù)制代碼 代碼如下:

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

用js正則表達(dá)式刪除字符串前后空格
復(fù)制代碼 代碼如下:

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

讓我們分析一下第二行的正則表達(dá)式
^ 行開(kāi)始
\s*
匹配字符前面的所有空格,貪婪模式重復(fù)
(.*?)
捕獲組,勉強(qiáng)模式重復(fù)匹配任意字符,也就是我們最終需要(去掉前后空格后)的字符,這個(gè)不是很好理解(我認(rèn)為)
第一:我原來(lái)認(rèn)為在捕獲組內(nèi)也應(yīng)該判斷第一個(gè)字符應(yīng)該不能為空格即寫(xiě)成([^\s+])的形式,但這是完全沒(méi)有必要的因?yàn)椴东@組前面的\s*已經(jīng)能捕獲開(kāi)頭的所有的空格字符了,你認(rèn)為的捕獲組的字符開(kāi)始范圍與正則表達(dá)式匹配的字符范圍是不一樣的,汗~有點(diǎn)說(shuō)不清楚了,呵呵
第二:其中?的作用,他的作用就是勉強(qiáng)模式重復(fù)前面的字符,什么意思呢?就是如果我用(.*a)去匹配aaaaaaa字符串的結(jié)果就是(aaaaaaa)源字符串這叫貪婪模式,如果用(.*?a)去匹配aaaaaaa的話他就會(huì)先匹配第一a,然后是第二個(gè)a,然后是第三個(gè)a…….這就叫勉強(qiáng)模式匹配有的地方也叫懶惰模式匹配。通俗一點(diǎn)(大家都喜歡通俗的解釋,呵呵)就是前者是從后往前去匹配盡可能多的字符,而后者是從前往后匹配
第三:我們還要不要去關(guān)心捕獲組中后面的空格呢?因?yàn)椴东@組中的”.”也是可以匹配空格的,先前我也是考慮這個(gè)問(wèn)題大部分時(shí)間都浪費(fèi)在這上面了.其實(shí)這和考慮要不要排除捕獲組前面的空格一樣的道理,后面的\s*已經(jīng)給我們處理了
\s*匹配字符后面的空格
———————————————————分割線——————————————————–
自定義三個(gè)trim()函數(shù)來(lái)過(guò)濾字符串左右兩邊的空格。
復(fù)制代碼 代碼如下:

//js去除空格函數(shù)
//此處為string類(lèi)添加三個(gè)成員
String.prototype.Trim = function(){ return Trim(this);}
String.prototype.LTrim = function(){return LTrim(this);}
String.prototype.RTrim = function(){return RTrim(this);}
//此處為獨(dú)立函數(shù)
function LTrim(str)
{
var i;
for(i=0;istr.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));
}

———————————————————分割線——————————————————–
復(fù)制代碼 代碼如下:

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(“是否確認(rèn)保存數(shù)據(jù)?”)){
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(“單位名稱(chēng)或擬申報(bào)等級(jí)不能為空!”);
}
}else{
return false;
}
};
您可能感興趣的文章:
  • javascript將字符串中的多個(gè)空格替換為一個(gè)空格的正則實(shí)例
  • JS不用正則驗(yàn)證輸入的字符串是否為空(包含空格)的實(shí)現(xiàn)代碼
  • 去掉字符串前后所有空格的正則表達(dá)式
  • 正則刪除字符串左、右或兩端的空格經(jīng)驗(yàn)總結(jié)
  • 正則表達(dá)式實(shí)現(xiàn)字符串每4位后自動(dòng)加空格效果(兩種方法)

標(biāo)簽:廣元 棗莊 萍鄉(xiāng) 大理 衡水 衢州 蚌埠 江蘇

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《javascript中使用正則表達(dá)式實(shí)現(xiàn)刪除字符串中的前后空格》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266