一、三种判断输入框内容或者字符串是否全部为空格、正则表达式
function spaceJudge(){
var dom = document.getElementById("inContext");
var value = dom.value;//这里获取输入框的内容,下面是三种方法
方法一
将输入的内容去掉开头和结尾的空格,若长度大于0,则说明不全是空格,若长度为0则全是空格
var valuestr = value.trim();
if(valuestr.length <= 0) {
console.log("all space or space")
};
方法二
若结果为true则表示全为空格或者为空
var patt = /^ [\s]*$/;//以空格开头并且已空格结尾,中间多次或者零次空格
var pvalue = patt.test(value);//RegExp方法,检索字符串
if(pvalue) {
console.log("all space or space")
};
方法三
若长度大于0,则说明不全是空格,若长度为0则全是空格
var revaue = value.replace(/^\s*|(\s*$)/g,"");
if(revaue.length <= 0 ) {
console.log("all space or space")
};
二、解析
-
trim():删除字符开始和末尾的空格、换行符、制表符,若这些字符存在于字符串中间时会被保留。
- 正则表达式:
表达式一:/^ [\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