清空字符串的空格

发布时间 2023-06-14 11:39:49作者: 前端白雪

/\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,'')}"