/\s+/g和/\s/g的区别
正则表达式/\s+/g和/\s/g,目的均是找出目标字符串中的所有空白字符,但两者到底有什么区别呢?
我们先来看下面一个例子:
let name = 'ye wen jun';
let ans = name.replace(/\s/g, ''); // 'yewenjun'
let ans2 = name.replace(/\s+/g, ''); // 'yewenjun'
从上面那个例子我们看到结果没有区别,那我们在换个例子看看
let name = 'ye wen jun';
let ans = name.replace(/\s/g, '#'); // "ye###wen####jun"
let ans2 = name.replace(/\s+/g, '#'); // "ye#wen#jun"
现在可以很清楚的可以看到,+的意思就是从遇到第一个匹配的字符起,继续匹配,直到匹配失败,把这段匹配到的字符替换为#,
而不带+的是把匹配到的字符一个一个替换为#
js里elm.value.replace(/[\s ]+/g, ''),是什么意思,需要详细解释,比如/[\s]是什么意思 elm是表单吧.将elm表单的值中的空白字符替换.
replace字符串的替换方法.
/[\s ]+/g正则表达式./xxxx/两个斜杠表示这个是正则表达式.后面的g表示匹配全部(即替换全部),[\s]表示匹配空白字符(空格等什么的),+号表示至少有一个.更详细的用法请查看正则表达式.
去除空格,只输入字符串
onkeyup="this.value=this.value.replace(/\s/g,'')"
onafterpaste="this.value=this.value.replace(/\s/g,'')"
只允许输入数字
onkeyup="this.value=this.value.replace(/\D/g,'')"
onafterpaste="this.value=this.value.replace(/\D/g,'')"
onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"
onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"
标签:字符,匹配,name,value,replace,空格,let,清空,字符串 From: https://www.cnblogs.com/webSnow/p/17479762.html