对于控制台系统来说,最常用的就是表单了。而表单是需要校验的,有时候写个正则,搞半天都不对,特此记录下来,方便查找。
校验字符串是否是JSON格式
首先,自然想到的是使用JSON.parse(str)
,但是单纯的使用JSON.parse(str)
不能完全检验一个字符串是JSON格式,有许多例外:
1 | JSON.parse('"aaa"'); // aaa |
JS数据类型有字符串、数字、布尔值、数组、对象、Null、Undefined,经过测试,使用JSON.parse
能够转换成功的有:数字、字符串、布尔值、数组、空对象、null、json,而其中正确的JSON格式有:数组、空对象、json
所以,得出结论,如果JSON.parse
能够转换成功,并且转换后的类型为object,且不等于null,那么这个字符串就是JSON格式的字符串。
所以代码如下:
1 | function isJSON(str) { |
参考资料:https://www.cnblogs.com/lanleiming/p/7096973.html
数字相关
这里经常犯的错误是,\d{0, 7}
经常错写成\d{0-7}
非负整数
1 | /^\d+$/ |
正整数
1 | /^[1-9]{1}(\d+)?$/g |
整数
1 | /^-?\d+$/ |
限制范围的整数
1 | // 1-100之间的整数 |
数字
1 | /^(\.\d+)|(-?\d+(\.\d*)?)$/ |
限制小数位数
1 | /^-?\d+(\.\d{0,7})?$/ |
字符串相关
大小写字母、数字、下划线、中划线
1 | /^[a-zA-Z0-9_-]+$/g |
限制字符串长度
1 | // 只能输入64个字符 |