在JS中,我們經(jīng)常需要處理字符串,也經(jīng)常需要去除字符串的空格。
- 通過字符串自帶方法
<script type="text/javascript">
var str = ` Hello World! `;
console.log(str.trim());//去除字符串開頭和結(jié)尾的所有空格
console.log(str.trimLeft());//去除左邊(開頭)所有空格
console.log(str.trimRight());//去除右邊(結(jié)尾)所有空格
</script>
缺陷:通過字符串自帶方法,無法去除字符串中間的空格
2.通過RegExp
<script type="text/javascript">
var str = ` Hello World! `;
console.log(str.replace(/\s*/g,''));//全局匹配字符串所有空格,替換成''
console.log(str.replace(/^\s*|\s*$/g,''));//匹配開頭和結(jié)尾的所有空格,替換成''
console.log(str.replace(/^\s*/,''));//匹配開頭的所有空格,替換成''
console.log(str.replace(/\s*$/,''));//匹配結(jié)尾的0個或多個空格,替換成''
</script>
- 通過jQuery
<script src="jquery-3.3.1.js"></script>
<script type="text/javascript">
$(function(){
var str = ` Hello World! `;
console.log($.trim(str));//去除字符串兩端空格
});
</script>
使用$.trim()也只能出去兩端空格
知識點回顧:
String相關(guān):
原始值字符串并沒有屬性和方法,因為他們不是對象。但原始值可以使用 屬性和方法,是因為 JavaScript 在執(zhí)行其方法和屬性時經(jīng)過了包裝類
-
String()可以將任意類型的值轉(zhuǎn)為字符串。 -
String.fromCharCode(),會根據(jù)傳入的Unicode碼點返回對應(yīng)的字符串 -
str.length,屬性會返回字符串的長度 - String的實例對象的方法
charAt()返回指定位置的字符charCodeAt()返回給定位置字符的Unicode碼點)。concat()連接兩個字符串,返回一個新字符串,不改變原字符串。slice()用于從原字符串截取子字符串并返回,不改變原字符串。
當(dāng)有兩個參數(shù)時:第一個表示開始位,第二個是結(jié)束位(不含該位置)
當(dāng)只有一個參數(shù)時:則表示從該位開始,截取到最后并返回。
當(dāng)不傳參時:相當(dāng)于是截取了整個字符串,可以理解為復(fù)制了一個一樣的值
如果參數(shù)是負值:表示從倒數(shù)位置。
如果第一個參數(shù)大于第二個參數(shù):如slice(3,1),方法返回一個空字符串。substring()用于從原字符串取出子字符串并返回,不改變原字符串。優(yōu)先使用slice。substr()也是從原字符串取出子字符串并返回,不改變原字符串。
如果兩個參數(shù):第一個參數(shù)表示開始位,第二個參數(shù)表示截取的子字符串的長度。
當(dāng)只有一個參數(shù)時:則表示從開始位開始,截取到原字符串最后。
如果第一個參數(shù)是負數(shù):表示倒數(shù)計算的字符位置
如果第二個參數(shù)是負數(shù),將被自動轉(zhuǎn)為0,因此會返回空字符串。indexOf(),lastIndexOf()
用于確定一個字符串在另一個字符串中的位置,都返回一個整數(shù),表示匹配開始的位置。如果返回-1,就表示不匹配。trim()用于去除字符串兩端的空格,不改變原字符串。toLowerCase()轉(zhuǎn)為小寫,不改變原字符串。toUpperCase()轉(zhuǎn)為大寫。不改變原字符串。localeCompare()比較兩個字符串,如果返回小于0,表示第一個字符串小于第二個字符串;如果等于0,表示兩者相等;如果大于0,表示第一個字符串大于第二個字符串。
該方法的最大特點,就是會考慮自然語言的順序。實際上這是JavaScript采用的是Unicode碼點比較match()用于匹配原字符串是否有某個子字符串,返回一個數(shù)組,成員為匹配的第一個字符串。如果沒有找到匹配,則返回nullsearch()用法等同于match,表示查找字符串中是否有某個字符串。但是返回值為匹配的第一個位置。如果沒有找到匹配,則返回-1。replace()替換匹配的子字符串,一般情況下只替換第一個匹配(除非使用帶有g(shù)修飾符的正則表達式)split()按照給定分割字符串進行分割,返回子字符串組成的數(shù)組。