js trim函數(shù) 去空格函數(shù)與正則集錦
更新時(shí)間:2009年11月20日 17:29:35 作者:
在javascript中處理文本框輸入值的時(shí)候,經(jīng)常要用到"去掉前后空白"的功能。用過jQuery的朋友都知道,jQuery提供了一個(gè)trim()這樣的功能函數(shù),可以很輕松幫我們實(shí)現(xiàn)這樣的效果。
但是如果項(xiàng)目沒有用到j(luò)Query等框架的話,js本身又沒有這樣的函數(shù),我們不得不自己寫這樣的函數(shù),下面是函數(shù)的具體實(shí)現(xiàn):
//供使用者調(diào)用
function trim(s){
return trimRight(trimLeft(s));
}
//去掉左邊的空白
function trimLeft(s){
if(s == null) {
return "";
}
var whitespace = new String(" \t\n\r");
var str = new String(s);
if (whitespace.indexOf(str.charAt(0)) != -1) {
var j=0, i = str.length;
while (j < i && whitespace.indexOf(str.charAt(j)) != -1){
j++;
}
str = str.substring(j, i);
}
return str;
}
//去掉右邊的空白
function trimRight(s){
if(s == null) return "";
var whitespace = new String(" \t\n\r");
var str = new String(s);
if (whitespace.indexOf(str.charAt(str.length-1)) != -1){
var i = str.length - 1;
while (i >= 0 && whitespace.indexOf(str.charAt(i)) != -1){
i--;
}
str = str.substring(0, i+1);
}
return str;
}
使用時(shí)只需調(diào)用trim函數(shù)即可。
下面是用正則的實(shí)現(xiàn)方法:
<SCRIPT LANGUAGE="JavaScript">
<!--
String.prototype.Trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.LTrim = function()
{
return this.replace(/(^\s*)/g, "");
}
String.prototype.RTrim = function()
{
return this.replace(/(\s*$)/g, "");
}
//-->
</SCRIPT>
<input type="text" value=" 前后都是空格 " id="space">
<input type="button" value="去前后空格" onclick="javascript:document.getElementById('space').value=document.getElementById('space').value.Trim();document.getElementById('space').select();">
<input type="button" value="去前空格" onclick="javascript:document.getElementById('space').value=document.getElementById('space').value.LTrim();document.getElementById('space').select();">
<input type="button" value="去后空格" onclick="javascript:document.getElementById('space').value=document.getElementById('space').value.RTrim();document.getElementById('space').select();">
<input type="button" value="還原" onclick="javascript:document.getElementById('space').value=' 前后都是空格 ';">
上面的代碼因?yàn)榫庉嬈鞯膯栴},空格被替換了,所以大家請(qǐng)注意添加空格,測(cè)試。
復(fù)制代碼 代碼如下:
//供使用者調(diào)用
function trim(s){
return trimRight(trimLeft(s));
}
//去掉左邊的空白
function trimLeft(s){
if(s == null) {
return "";
}
var whitespace = new String(" \t\n\r");
var str = new String(s);
if (whitespace.indexOf(str.charAt(0)) != -1) {
var j=0, i = str.length;
while (j < i && whitespace.indexOf(str.charAt(j)) != -1){
j++;
}
str = str.substring(j, i);
}
return str;
}
//去掉右邊的空白
function trimRight(s){
if(s == null) return "";
var whitespace = new String(" \t\n\r");
var str = new String(s);
if (whitespace.indexOf(str.charAt(str.length-1)) != -1){
var i = str.length - 1;
while (i >= 0 && whitespace.indexOf(str.charAt(i)) != -1){
i--;
}
str = str.substring(0, i+1);
}
return str;
}
使用時(shí)只需調(diào)用trim函數(shù)即可。
下面是用正則的實(shí)現(xiàn)方法:
復(fù)制代碼 代碼如下:
<SCRIPT LANGUAGE="JavaScript">
<!--
String.prototype.Trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.LTrim = function()
{
return this.replace(/(^\s*)/g, "");
}
String.prototype.RTrim = function()
{
return this.replace(/(\s*$)/g, "");
}
//-->
</SCRIPT>
<input type="text" value=" 前后都是空格 " id="space">
<input type="button" value="去前后空格" onclick="javascript:document.getElementById('space').value=document.getElementById('space').value.Trim();document.getElementById('space').select();">
<input type="button" value="去前空格" onclick="javascript:document.getElementById('space').value=document.getElementById('space').value.LTrim();document.getElementById('space').select();">
<input type="button" value="去后空格" onclick="javascript:document.getElementById('space').value=document.getElementById('space').value.RTrim();document.getElementById('space').select();">
<input type="button" value="還原" onclick="javascript:document.getElementById('space').value=' 前后都是空格 ';">
上面的代碼因?yàn)榫庉嬈鞯膯栴},空格被替換了,所以大家請(qǐng)注意添加空格,測(cè)試。
相關(guān)文章
JavaScript Object的extend是一個(gè)常用的功能
對(duì)Object的extend是一個(gè)常用的功能。舉一個(gè)例子,由于javascript 沒有重載(overload),而且函數(shù)的參數(shù)類型是沒有定義的,所以很多時(shí)候我們都傳入一個(gè)對(duì)象來作為參數(shù)已方便控制。2009-12-12JavaScript defineProperty如何實(shí)現(xiàn)屬性劫持
雙向數(shù)據(jù)綁定的核心方法,主要是做數(shù)據(jù)劫持操作(監(jiān)控?cái)?shù)據(jù)變化),下面這篇文章主要給大家介紹了關(guān)于JavaScript defineProperty如何實(shí)現(xiàn)屬性劫持的相關(guān)資料,需要的朋友可以參考下2021-07-07詳解基于javascript實(shí)現(xiàn)的蘋果系統(tǒng)底部菜單
本篇文章主要對(duì)基于javascript實(shí)現(xiàn)的蘋果系統(tǒng)底部菜單進(jìn)行了詳細(xì)的分析說明,有助于理解和學(xué)習(xí)編寫蘋果系統(tǒng)底部菜單,相信會(huì)對(duì)大家有所幫助,下面就跟小編一起來看看吧2016-12-12JavaScript實(shí)現(xiàn)簡單輪播圖效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)圖片輪播,左右翻轉(zhuǎn),圖片切換顯示等效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12JavaScript封閉函數(shù)及常用內(nèi)置對(duì)象示例
這篇文章主要介紹了JavaScript封閉函數(shù)及常用內(nèi)置對(duì)象,結(jié)合實(shí)例形式分析了JavaScript封閉函數(shù)及常用內(nèi)置對(duì)象的定義與簡單使用相關(guān)操作技巧,需要的朋友可以參考下2019-05-05