数据过滤
手机号码隐藏中间4位 保留两位小数 每三位逗号隔开,后面补两位小数,多用于金额数字 银行尾号四位数 数字金额转换为大写人民币汉字的方法 获取Url携带的地址参数 金额以元和万元为单位 隐藏证件号 用户姓名脱敏 账号4位一空格 字符全局替换
数据验证
手机号验证 姓名校验 密码必须为8-18位数,且包含大小写字母和特殊符号 身份证号完整校验 只能输入数字和字母 校验特殊字符
数据过滤
手机号码隐藏中间4位
phoneHideMiddle ( val) {
if ( val) {
return `${ val. substring ( 0 , 3 ) } * * * * ${ val. substring ( val. length - 4 ) } `
}
else {
return "" ;
}
}
保留两位小数
keepTwoNum ( val) {
val = Number ( val) ;
return val. toFixed ( 2 ) ;
}
每三位逗号隔开,后面补两位小数,多用于金额数字
floatThree ( value) {
value = "" + value;
if ( ! value) return '0.00' ;
var intPart = parseInt ( Number ( value) ) ;
var intPartFormat = intPart. toString ( ) . replace ( / ( \d) ( ? = ( ? : \d{ 3 } ) + $) / g, '$1,' ) ;
var floatPart = ".00" ;
var value2Array = value. split ( "." ) ;
if ( value2Array. length == 2 ) {
floatPart = value2Array[ 1 ] . toString ( ) ;
if ( floatPart. length == 1 ) {
return intPartFormat + "." + floatPart + '0' ;
} else {
return intPartFormat + "." + floatPart;
}
} else {
return intPartFormat + floatPart;
}
} ,
银行尾号四位数
bankCardNumLastFour ( val) {
if ( val) {
return val. substring ( val. length - 4 ) ;
}
} ,
数字金额转换为大写人民币汉字的方法
convertCurrency ( money) {
var cnNums = new Array ( '零' , '壹' , '贰' , '叁' , '肆' , '伍' , '陆' , '柒' , '捌' , '玖' ) ;
var cnIntRadice = new Array ( '', ' 拾', ' 佰', ' 仟') ;
var cnIntUnits = new Array ( '', ' 万', ' 亿', ' 兆') ;
var cnDecUnits = new Array ( '角' , '分' , '毫' , '厘' ) ;
var cnInteger = '整' ;
var cnIntLast = '元' ;
var maxNum = 999999999999999.9999 ;
var integerNum;
var decimalNum;
var chineseStr = '';
var parts;
if ( money == '') { return ''; }
money = parseFloat ( money) ;
if ( money >= maxNum) {
return '';
}
if ( money == 0 ) {
chineseStr = cnNums[ 0 ] + cnIntLast + cnInteger;
return chineseStr;
}
money = money. toString ( ) ;
if ( money. indexOf ( '.' ) == - 1 ) {
integerNum = money;
decimalNum = '';
} else {
parts = money. split ( '.' ) ;
integerNum = parts[ 0 ] ;
decimalNum = parts[ 1 ] . substr ( 0 , 4 ) ;
}
if ( parseInt ( integerNum, 10 ) > 0 ) {
var zeroCount = 0 ;
var IntLen = integerNum. length;
for ( var i = 0 ; i < IntLen ; i++ ) {
var n = integerNum. substr ( i, 1 ) ;
var p = IntLen - i - 1 ;
var q = p / 4 ;
var m = p % 4 ;
if ( n == '0' ) {
zeroCount++ ;
} else {
if ( zeroCount > 0 ) {
chineseStr += cnNums[ 0 ] ;
}
zeroCount = 0 ;
chineseStr += cnNums[ parseInt ( n) ] + cnIntRadice[ m] ;
}
if ( m == 0 && zeroCount < 4 ) {
chineseStr += cnIntUnits[ q] ;
}
}
chineseStr += cnIntLast;
}
if ( decimalNum != '') {
var decLen = decimalNum. length;
for ( var i = 0 ; i < decLen; i++ ) {
var n = decimalNum. substr ( i, 1 ) ;
if ( n != '0' ) {
chineseStr += cnNums[ Number ( n) ] + cnDecUnits[ i] ;
}
}
}
if ( chineseStr == '') {
chineseStr += cnNums[ 0 ] + cnIntLast + cnInteger;
} else if ( decimalNum == '') {
chineseStr += cnInteger;
}
return chineseStr;
} ,
获取Url携带的地址参数
GetQueryString ( name) {
var reg = new RegExp ( "(^|&)" + name + "=([^&]*)(&|$)" ) ;
if ( window. location. search != "" ) {
var r = window. location. search. substr ( 1 ) . match ( reg) ;
} else {
if ( window. location. hash. indexOf ( "?" ) > 0 ) {
var tmp = window. location. hash. split ( "?" ) ;
var r = tmp[ 1 ] . match ( reg) ;
} else {
var r = null ;
}
}
if ( r != null ) {
return decodeURI ( r[ 2 ] ) ;
}
return null ;
} ,
金额以元和万元为单位
moneyConvert ( num) {
var newNum = Number ( num) ;
if ( 10000 <= newNum) {
return ( newNum / 10000 ) + '万元'
} else {
return newNum + '元'
}
} ,
隐藏证件号
certIdHide ( val) {
if ( val) {
var certId = val. substring ( 0 , 1 ) + '* * * * * * * * * * * * * * * * ' + val. substring ( val. length - 1 )
return certId
}
} ,
用户姓名脱敏
userNameHide ( val) {
if ( val) {
let name;
if ( val. length < 3 ) {
name = '*' + val. substring ( val. length - 1 )
return name
} else {
name = val. substring ( 0 , 1 ) + '*' + val. substring ( val. length - 1 )
return name
}
}
} ,
账号4位一空格
accountNumberSpace ( val) {
if ( val) {
return val. replace ( / \s/ g, "" )
. replace ( / \D / g, "" )
. replace ( / ( \d{ 4 } ) ( ? = \d) / g, "$1 " ) ;
}
}
字符全局替换
res. data. content = res. data. content. replace ( / \< img/ gi, '< img style= "max-width:100%;height:auto" ')
数据验证
校验特殊字符
#### 校验特殊字符
isSpecialChars ( str) {
var regEn = / [ `~ ! @#$% ^ & * ( ) _+ < > ? : "{ } , . \/ ; '[ \] ] / im;
var regCn = / [ ·!#¥(——):;“”‘、,| 《。》?、【】[ \] ] / im;
console. log ( regEn. test ( str) )
if ( regEn. test ( str) || regCn. test ( str) ) {
return false
} else {
return true
}
}
手机号验证
#### 手机号验证
isvalidPhone ( str) {
const reg = / ^ 1 \d{ 10 } $/
return reg. test ( str)
} ,
姓名校验
#### 姓名校验
isUserName ( name) {
if ( name && name. length > 1 ) {
const reg = name. match ( / ^ [ \u4e00- \u9fa5] + $/ )
return Boolean ( reg)
}
return false
} ,
密码必须为8-18位数,且包含大小写字母和特殊符号
#### 密码必须为8 - 18 位数,且包含大小写字母和特殊符号
/ ^ ( ? = . *[ 0 - 9 ] ) ( ? = . *[ A - Z ] ) ( ? = . *[ a- z] ) ( ? = . *[ ! ~ @#$% ^ & * , \. ] ) [ 0 - 9 a- zA- Z ! ~ @#$% ^ & * , \\. ] { 8 , 18 } $/
只能输入数字和字母
isvalidateLetterAndNum ( str) {
const reg = / ^ [ 0 - 9 a- zA- Z ] + $/ ;
console. log ( reg. test ( str) ) ;
return reg. test ( str)
} ,
校验特殊字符
isSpecialChars ( str) {
var regEn = / [ `~ ! @#$% ^ & * ( ) _+ < > ? : "{ } , . \/ ; '[ \] ] / im;
var regCn = / [ ·!#¥(——):;“”‘、,| 《。》?、【】[ \] ] / im;
console. log ( regEn. test ( str) )
if ( regEn. test ( str) || regCn. test ( str) ) {
return false
} else {
return true
}
}