1.只能输入数字、大小写、汉字
str. replace ( /[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g , "" )
2.金额栏位常用
val. replace ( /[^\d.]/g , "" )
. replace ( /\.{2,}/g , "." )
. replace ( "." , "$#$" )
. replace ( /\./g , "" )
. replace ( "$#$" , "." )
. replace ( /^(\-)*(\d+)\.(\d\d).*$/ , "$1$2.$3" ) ;
3.输入的不是数字替换成空
str. replace ( /[^\d]/g , "" )
4.脱敏
str. replace ( /^(\d{3})\d+(\d{4})$/ , "$1***$2" )
5.手机号
let reg = 11 && /^((10|11|12|13|16|19|14|15|17|18)[0-9]{1}\d{8})$/ ;
let reg = /^1[0-9]{10}$/ ;
6.金额格式化
str. replace ( /\d{1,3}(?=(\d{3})+$)/g , '$&,' )
同
str. replace ( /(\d)(?=(?:\d{3})+$)/g , "$1," )
7.url 格式化
parseUrlValues ( url) {
const values = { } ;
url. replace ( /[?&]+([^=&]+)=([^&]*)/gi , function ( m, key, value) {
values[ key] = value;
} ) ;
return values;
}
8.去空、加标签
let getTemp = ( ) => {
let listContent = content. split ( '\n' ) ;
for ( let i = listContent. length - 1 ; i >= 0 ; i-- ) {
if ( trim ( listContent[ i] ) . length === 0 ) {
listContent. splice ( i, 1 ) ;
}
}
for ( let i = 0 ; i < listContent. length; i++ ) {
if ( /\[[a-zA-Z0-9_\,]*\]/g . test ( listContent[ i] ) ) {
listContent[ i] = listContent[ i] . replace ( /(\[[a-zA-Z_\,]*\])(.*)/g , function ( val) {
let strClass = val. replace ( /(\[[a-zA-Z_\,]*\])(.*)/g , '$1' ) . replace ( /(\[)/ , '' ) . replace ( /(\])/ , '' ) . replace ( /\,/g , ' ' ) ;
let content = val. replace ( /(\[[a-zA-Z_\,]*\])(.*)/g , '$2' ) ;
if ( content. indexOf ( '<table>' ) === 0 ) {
return content
} else {
return `<p class=" ${ strClass} "> ${ content} </p>` ;
}
} ) ;
} else {
listContent[ i] = `<p> ${ listContent[ i] } </p>`
}
}
return { title, content: listContent} ;
} ;
9.日期格式化(例:20200929)
str. replace ( /^(\d{4})(\d{2})(\d{2})$/ , '$1/$2/$3' )
str. replace ( /(\d{4})(\d\d)(\d\d)/ , "$1-$2-$3" ) ;
str. replace ( /^(\d{4})(\d{2})(\d{2})$/ , '$1年$2月$3日' )
10.金额转为大写
toChineseMoney ( n) {
if ( Number ( n) === 0 ) {
return '零元整'
}
if ( ! /^(0|[1-9]\d*)(\.\d+)?$/ . test ( n) ) return "数据非法" ;
let unit = "京亿万仟佰拾兆万仟佰拾亿仟佰拾万仟佰拾元角分" , str = "" ;
n += "00" ;
let p = n. indexOf ( '.' ) ;
if ( p >= 0 )
n = n. substring ( 0 , p) + n. substr ( p + 1 , 2 ) ;
unit = unit. substr ( unit. length - n. length) ;
for ( let i = 0 ; i < n. length; i++ ) str += '零壹贰叁肆伍陆柒捌玖' . charAt ( n. charAt ( i) ) + unit. charAt ( i) ;
return str. replace ( /零(仟|佰|拾|角)/g , "零" )
. replace ( /(零)+/g , "零" )
. replace ( /零(兆|万|亿|元)/g , "$1" )
. replace ( /(兆|亿)万/g , "$1" )
. replace ( /(京|兆)亿/g , "$1" )
. replace ( /(京)兆/g , "$1" )
. replace ( /(京|兆|亿|仟|佰|拾)(万?)(.)仟/g , "$1$2零$3仟" )
. replace ( /^元零?|零分/g , "" )
. replace ( /(元|角)$/g , "$1整" ) ;
} ,
11.给数字加逗号,并默认保留两位小数
function formatNumberMoney ( num, nozero) {
num = ( Number ( num) || 0 ) . toString ( ) ;
let numInt = num. split ( '.' ) [ 0 ] . replace ( /(\d)(?=(?:\d{3})+$)/g , '$1,' ) ;
if ( num. split ( '.' ) [ 1 ] ) {
let numDec = num. split ( '.' ) [ 1 ] . substr ( 0 , 2 ) ;
if ( numDec. length === 2 || nozero) {
return numInt + '.' + numDec;
}
else if ( numDec. length === 1 ) {
return numInt + '.' + numDec + '0' ;
}
} else {
if ( nozero) {
return numInt;
}
else {
return numInt + '.00' ;
}
}
}
12. 6到20位数字+字母组合
let reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/ ;
13.邮箱正则
let reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/ ;
14.身份证号码
let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ ;
15.匹配中文
let reg = /^[\u4e00-\u9fa5]*$/ ;
16.输入数字且保留2位小数
let reg = /^\d+(\.\d{0,2})?$/ ;
17.输入框限制输入中文
< input onkeyup= "value=value.replace([\u4e00-\u9fa5]/g,'')" / >
18.微信号正则
let reg = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/ ;
19.QQ号码正则
let reg = /^[1-9][0-9]{4,10}$/ ;
20.区号+座机号码+分机号码
let reg= "^(0[0-9]{2,3}/-)?([2-9][0-9]{6,7})+(/-[0-9]{1,4})?$"