一、三種判斷方法函數
function spaceJudge(){
var dom = document.getElementById("inContext");
var value = dom.value;//獲取輸入框的內容
//將輸入的內容去掉開頭和結尾的空格,若長度大於0,則說明不全是空格,若長度為0則全是空格
var valuestr = value.trim();
var patt = /^[\s]*$/;//以空格開頭並且已空格結尾,中間多次或者零次空格
//若結果為true則表示全為空格或者為空
var pvalue = patt.test(value);//RegExp方法,檢索字符串
//若長度大於0,則說明不全是空格,若長度為0則全是空格
var revaue = value.replace(/^\s*|(\s*$)/g,"");
if(valuestr.length <= 0) {console.log("all space or space")};//方法一
if(pvalue ) {console.log("all space or space")};//方法二
if(revaue.length <= 0 ) {console.log("all space or space")};//方法三
}
二、解析
1.trim():刪除字符開始和末尾的空格、換行符、制表符,若這些字符存在於字符串中間時會被保留。
2.正則表達式:
表達式一:/^[\s]*$/
知識點:^:表示開頭、非、以及字符'^',在開頭時表示開頭,例如/^[abc]/表示以字符a或b或c開頭的字符串;在字符類中表示非,例如/[^abc]/表示處理a、b、c之外的任意字符;
\s:匹配任何Unicode的空白字符
$:表示字符串結尾
*:表示匹配零次或者多次
test():RegExp方法,表示對每一個字符串進行檢索,若包含正則表達式的結果則返回成功
表達式二:/^\s*|(\s*$)/g
知識點:|用於分割供選擇的字符串,例如/a|b/表示匹配字符a或者字符b
g表示全局內匹配,找完字符串中的全部滿足字符
replace(正則表達式,替換字符):String方法,將匹配到的字符串全部改為替換字符。注意:這只是其中的一種用法
注意:這些方法適用於輸入完成后離開輸入框在去驗證字符串
三、擴展常用正則表達式
1.判斷非全零的全數據字符串:/^[0-9]*[1-9][0-9]*$/g;//全局匹配g可以去掉
2.判斷字符串全部為數字或者為浮點數:/^\d+(\.\d+)?$/g;
3.判斷字符串為浮點數:/^\d+(\.\d+)?{1}/g;//該方法存在的一個BUG,1.0和1\.0都返回true,這個后續在優化
4.判斷字符串是否為金額格式:/^\d+(\.([0-9]|([0-9][0-9])))?$/g;//例如:100 100.5 100.30
5.其他的檢查空字符串和首尾空格:/^\s*|\s+$/g; 其他 檢查首尾空格但是不包括空字符串:/^\s+|\s+$/g;
6.判斷是否為yyyy-mm(0、1)-dd(0、1)格式日期: /^\d{4}-([0-1]?[0-9])-([0-3]?[0-9])$/; 例如:2018-09-18 2018-9-3
四、正則表達式知識點擴展
1.重復字符含義:
{n,m} 匹配前一項最少n次,最多m次;例如:
{n,} 匹配前一項n次及其以上;例如:
{n} 匹配前一項n次; 例如: /^\d{4}/表示匹配數字4次
? 匹配前一項0次或者1次;
* 匹配前一項至少0次;
+ 匹配前一項至少1次;
————————————————
版權聲明:本文為CSDN博主「houniao1314」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/houniao1314/article/details/80793706