以前写过很多JS正则表达式,现在很多都已经忘了。现在建立这个页面,作为JS正则表达式知识的结尾还是很合适的。

验证类

/^\d+$/.test('a123');  //判断字符串为整数 ^$+
/^-?\d+\.?\d*$/.test('a123');  //判断字符串为数字   ^& ?+.

//jquery hasClass功能 \b 单词边界必须
/\bclassname\b/.test('cls1 classname cls2');

// 包含非ASCII可显示字符,用于校验输入字符串是否只包含基本键盘字符
/[^\x20-\x7e]/.test('△');

/[α-ωΑ-Ω]/.test('π△');    // 包含希腊字母
/[a-zA-Z0-9]/.test('π△');    // 包含字母和数字

//密码至少8位,要求必须字母和数字组合 (?![0-9]+$)向前否定断言,表示^后面不全部是数字
/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,}$/.test('password');

处理类

//计算字符串长度,汉字等算2位
'你好,△123'.replace(/[^\x00-\xff]/g, '|-').length

// 金额格式化1,x(?=y) 向前断言,表明右边的格式位3个数字一组,加小数部分
(1234567.890).toFixed(2).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,')

// 金额格式化2,只匹配\B,用,替换\B
(1234567.890).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ',')