javascript中使用正則表達(dá)式刪除前后空格的方法
去掉首位空格
str=str.replace(/^\s+|\s+$/g,'');
js正則表達(dá)式刪除字符串前后空格
String.prototype.trim=function(){
var reSpace=/^\s*(.*?)\s*$/;
return this.replace(reSpace,”$1″);
};
讓我們分析一下第二行的正則表達(dá)式
^ 行開始
\s*
匹配字符前面的所有空格,貪婪模式重復(fù)
(.*?)
捕獲組,勉強(qiáng)模式重復(fù)匹配任意字符,也就是我們最終需要(去掉前后空格后)的字符,這個(gè)不是很好理解(我認(rèn)為)
第一:我原來認(rèn)為在捕獲組內(nèi)也應(yīng)該判斷第一個(gè)字符應(yīng)該不能為空格即寫成([^\s+])的形式,但這是完全沒有必要的因?yàn)椴东@組前面的\s*已經(jīng)能捕獲開頭的所有的空格字符了,你認(rèn)為的捕獲組的字符開始范圍與正則表達(dá)式匹配的字符范圍是不一樣的,汗~有點(diǎn)說不清楚了,呵呵
第二:其中?的作用,他的作用就是勉強(qiáng)模式重復(fù)前面的字符,什么意思呢?就是如果我用(.*a)去匹配aaaaaaa字符串的結(jié)果就是(aaaaaaa)源字符串這叫貪婪模式,如果用(.*?a)去匹配aaaaaaa的話他就會(huì)先匹配第一a,然后是第二個(gè)a,然后是第三個(gè)a…….這就叫勉強(qiáng)模式匹配有的地方也叫懶惰模式匹配。通俗一點(diǎn)(大家都喜歡通俗的解釋,呵呵)就是前者是從后往前去匹配盡可能多的字符,而后者是從前往后匹配
第三:我們還要不要去關(guān)心捕獲組中后面的空格呢?因?yàn)椴东@組中的”.”也是可以匹配空格的,先前我也是考慮這個(gè)問題大部分時(shí)間都浪費(fèi)在這上面了.其實(shí)這和考慮要不要排除捕獲組前面的空格一樣的道理,后面的\s*已經(jīng)給我們處理了
\s*匹配字符后面的空格
———————————————————分割線——————————————————–
自定義三個(gè)trim()函數(shù)來過濾字符串左右兩邊的空格。
//js去除空格函數(shù)
//此處為string類添加三個(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;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(“是否確認(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(“單位名稱或擬申報(bào)等級(jí)不能為空!”);
}
}else{
return false;
}
};
以上內(nèi)容給大家分享了js正則表達(dá)式刪除前后空格的方法,希望大家喜歡。
- Javascript 5種方法實(shí)現(xiàn)過濾刪除前后所有空格
- javaScript 刪除字符串空格多種方法小結(jié)
- javascript中使用正則表達(dá)式實(shí)現(xiàn)刪除字符串中的前后空格
- JavaScript trim 實(shí)現(xiàn)去除字符串首尾指定字符的簡(jiǎn)單方法
- Javascript中實(shí)現(xiàn)trim()函數(shù)的兩種方法
- javascript trim函數(shù)在IE下不能用的解決方法
- js 去掉空格實(shí)例 Trim() LTrim() RTrim()
- JavaScript自定義方法實(shí)現(xiàn)trim()、Ltrim()、Rtrim()的功能
- js編寫trim()函數(shù)及正則表達(dá)式的運(yùn)用
- 用js實(shí)現(xiàn)trim()的解決辦法
- js自定義trim函數(shù)實(shí)現(xiàn)刪除兩端空格功能
相關(guān)文章
Java?正則獲取兩個(gè)字母之間的內(nèi)容(最新推薦)
這篇文章主要介紹了Java正則獲取兩個(gè)字母之間的內(nèi)容,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
正則表達(dá)式中關(guān)于對(duì)原生字符串的簡(jiǎn)單理解
正則表達(dá)式即使用一個(gè)字符串來描述、匹配一系列某個(gè)語法規(guī)則的字符串,下面這篇文章主要給大家介紹了關(guān)于正則表達(dá)式中關(guān)于對(duì)原生字符串的簡(jiǎn)單理解,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
js正則表達(dá)式 匹配兩個(gè)特定字符間的內(nèi)容示例
今天小編就為大家分享一篇js正則表達(dá)式 匹配兩個(gè)特定字符間的內(nèi)容示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07
asp提取內(nèi)容中的手機(jī)號(hào)碼,qq,網(wǎng)址的正則代碼
有時(shí)候需要獲取頁面源代碼中的手機(jī)號(hào)碼,qq,網(wǎng)址,一般情況下都是用正則表達(dá)式實(shí)現(xiàn)的,需要的朋友可以參考下。2011-09-09
EditPlus中的正則表達(dá)式 實(shí)戰(zhàn)(1)
本文通過實(shí)例代碼較詳細(xì)的給大家介紹了EditPlus中的正則表達(dá)式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2016-12-12
關(guān)于正則表達(dá)式基本語法的應(yīng)用詳解(必看篇)
下面小編就為大家?guī)硪黄P(guān)于正則表達(dá)式基本語法的應(yīng)用詳解(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08

