js去字符串前后空格5種實(shí)現(xiàn)方法及比較
我們?cè)陧?xiàng)目中如果寫(xiě)到注冊(cè)的時(shí)候,用戶(hù)輸入空格,我們?cè)趺磥?lái)剔除空格呢?
下面是我經(jīng)常用到的js與大家分享下:
第一種:循環(huán)檢查替換
[javascript]
//供使用者調(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;
}
//去掉右邊的空白 www.dbjr.com.cn
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;
}
第二種:正則替換
[javascript]
<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>
第三種:使用jquery
[javascript]
$.trim(str)
jquery內(nèi)部實(shí)現(xiàn)為:
[javascript]
function trim(str){
return str.replace(/^(\s|\u00A0)+/,'').replace(/(\s|\u00A0)+$/,'');
}
第四種:使用motools
[javascript]
function trim(str){
return str.replace(/^(\s|\xA0)+|(\s|\xA0)+$/g, '');
}
第五種:裁剪字符串方式
[javascript]
function trim(str){
str = str.replace(/^(\s|\u00A0)+/,'');
for(var i=str.length-1; i>=0; i--){
if(/\S/.test(str.charAt(i))){
str = str.substring(0, i+1);
break;
}
}
return str;
}
經(jīng)過(guò)測(cè)試第五種方法在處理長(zhǎng)字符串時(shí)效率最高。
<script type="text/JavaScript">
//去掉空格
function SystemTrim(str) {
var regExp = /(^\s*)|(\s*$)/;
return str.replace(regExp,"");
}
//調(diào)用
function add()
{
var ownername=document.form1.ownername.value;
if(SystemTrim(ownername)=="")
{
alert("請(qǐng)輸入您的稱(chēng)呼!");
return;
}
}
<script>
- javascript中比較字符串是否相等的方法
- javascript 兩個(gè)字符串比較函數(shù)
- js處理json以及字符串的比較等常用操作
- JavaScript 解析Json字符串的性能比較分析代碼
- javascript的字符串按引用復(fù)制和傳遞,按值來(lái)比較介紹與應(yīng)用
- 淺談JS中的三種字符串連接方式及其性能比較
- js字符串截取函數(shù)slice、substring和substr的比較
- JS實(shí)現(xiàn)的用來(lái)對(duì)比兩個(gè)用指定分隔符分割的字符串是否相同
- JS實(shí)現(xiàn)快速比較兩個(gè)字符串中包含有相同數(shù)字的方法
相關(guān)文章
提升PHP安全:8個(gè)必須修改的PHP默認(rèn)配置
這篇文章主要介紹了提升PHP安全:8個(gè)必須修改的PHP默認(rèn)配置,PHP.ini中的默認(rèn)配置是面向開(kāi)發(fā)者的,如果是生產(chǎn)環(huán)境是必須要修改一些配置的,需要的朋友可以參考下2014-11-11JS入門(mén)必備之八種數(shù)據(jù)類(lèi)型
Javascript腳本語(yǔ)言同其他語(yǔ)言一樣,有它自身的基本數(shù)據(jù)類(lèi)型,表達(dá)式和算術(shù)運(yùn)算符及程序的基本程序框架,這篇文章主要給大家介紹了關(guān)于JS中八種數(shù)據(jù)類(lèi)型的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01javascript實(shí)現(xiàn)動(dòng)態(tài)模態(tài)綁定grid過(guò)程代碼
這篇文章主要分享javascript實(shí)現(xiàn)動(dòng)態(tài)模態(tài)綁定grid過(guò)程代碼,比較實(shí)用,需要的朋友可以參考下2014-09-09Three.js后期處理效果(發(fā)光描邊OutlinePass)
這篇文章主要給大家介紹了關(guān)于Three.js后期處理效果(發(fā)光描邊OutlinePass)的相關(guān)資料,Three js 開(kāi)發(fā)的一些知識(shí)整理,方便后期遇到類(lèi)似的問(wèn)題,能夠及時(shí)查閱使用,需要的朋友可以參考下2024-01-01JS獲取整個(gè)頁(yè)面文檔的實(shí)現(xiàn)代碼
就是在當(dāng)前頁(yè)面用AJAX請(qǐng)求當(dāng)前頁(yè)面,返回的就是整個(gè)頁(yè)面的HTML··既然是整個(gè)頁(yè)面,所以也包括文檔聲明2011-12-12使用JavaScript switch case 另類(lèi)寫(xiě)法
在JavaScript里,函數(shù)(todoA、todoB、todoC)就是對(duì)象,“()”的作用就是就是執(zhí)行函數(shù)對(duì)象,二者簡(jiǎn)單地組合一下就能夠讓代碼清晰簡(jiǎn)潔很多了,何樂(lè)不為呢?2010-03-03JS實(shí)現(xiàn)類(lèi)似百葉窗下拉菜單效果
百葉窗下拉菜單效果非常棒,今天小編給大家分享一段js代碼實(shí)現(xiàn)類(lèi)似百葉窗下拉菜單效果,需要的朋友參考下2016-12-12