数字转千位符
const reg = function ( numStr ) {
return numStr. toString ( ) . replace ( / \d{1,3}(?=(\d{3})+(\.\d*)?$) / g , '$&,' )
}
单词首字母大写
var str = "my name is niu ,i am 28 years old" ;
var newStr = str. replace ( / \b[a-z] / g , function ( a ) {
console. log ( a) ;
return a. toUpperCase ( )
} )
console. log ( newStr) ;
邮箱验证
let reg = / ^[a-zA-Z0-9-_]+@[a-z0-9]+(\.[a-z]+)+$ /
验证中文名
let reg = / ^[\u4E00-\u9FA5]{3,6}(·[\u4E00-\u9FA5]{2,6}){0,2}$ /
身份证验证
let reg3 = / ^(\d{6})([1-2]\d{3})((0[1-9])|(1[0-2]))((0[1-9])|([1-2]\d)|(3[0-1]))\d{2}(\d)(\d|X)$ / ;
获取url里的参数-
let url = 'http://www.baidu.com?name=erYa&age=18#index' ;
function queryUrlParams ( ) {
let reg = / ([^?=&#]+)=([^?=&#]+) / g ;
let obj = { } ;
this . replace ( reg, ( content, key, value ) => {
obj[ key] = value;
} ) ;
this . replace ( / #([^?=&#]+) / , ( content, value ) => {
obj[ 'hash' ] = value;
} )
return obj;
}
String . prototype. queryUrlParams = queryUrlParams;
console. log ( url. queryUrlParams ( ) ) ;
let url = 'http://www.baidu.com?name=erYa&age=18#index' ;
function getUrlParameter ( name ) {
let reg = new RegExp ( "(^|&)" + name + "=([^&]*)(&|$)" , "i" ) ;
let r = window. location. search. substr ( 1 ) . match ( reg) ;
if ( r != null ) return decodeURIComponent ( r[ 2 ] ) ;
return null ;
}
getUrlParameter ( 'name' )
手机号格式化( 3-4-4分割)
const reg = function ( numStr ) {
return numStr. toString ( ) . replace ( / (?<=\d{3})\d+ / , ( $0 ) => {
return '-' + $0 ;
console. log ( $0 )
} ) . replace ( / (?<=[\d-]{8})\d{1,4} / , ( $0 ) => '-' + $0 )
}
密码验证
密码长度是6-12位,由数字、小写字母和大写字母组成,但必须至少包括2种字符
let a = function ( numStr ) {
let aa = / ^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,12}$ /
return aa. test ( numStr)
} ;
去除字符串中空格
function trim ( str ) {
return str. replace ( / \s / g , '' )
}
const trim = ( str ) => {
return str. replace ( / ^\s*|\s*$ / g , '' )
}
html转义
防止XSS攻击的方式之一就是做HTML转义,转义规则如下,要求将对应字符转换成等值的实体。而反转义则是将转义后的实体转换为对应的字符 xss攻击:有的时候页面中会有一个输入框,用户输入内容后会显示在页面中,类似于网页聊天应用。如果用户输入了一段js脚本,比例 “”,引号里其实有段代码但是csdn转义了显示不出,正常页面会弹出一个对话框,或者输入的脚本中有改变页面js变量的代码则会时程序异常或者达到跳过某种验证的目的
const escape = ( string ) => {
const escapeMaps = {
'&' : 'amp' ,
'<' : 'lt' ,
'>' : 'gt' ,
'"' : 'quot' ,
"'" : '#39'
}
const escapeRegexp = new RegExp ( ` [ ${ Object. keys ( escapeMaps) . join ( '' ) } ] ` , 'g' )
return string. replace ( escapeRegexp, ( match ) => ` & ${ escapeMaps[ match] } ; ` )
}
console. log ( escape ( `
<div>
<p>hello world</p>
</div>
` ) )
html反转义
const unescape = ( string ) => {
const unescapeMaps = {
'amp' : '&' ,
'lt' : '<' ,
'gt' : '>' ,
'quot' : '"' ,
'#39' : "'"
}
const unescapeRegexp = / &([^;]+); / g
return string. replace ( unescapeRegexp, ( match, unescapeKey ) => {
return unescapeMaps[ unescapeKey ] || match
} )
}
console. log ( unescape ( `
<div>
<p>hello world</p>
</div>
` ) )