JAVA和JS字符串每4个字符添加空格

  • A+
所属分类:Web前端
摘要

replace(/s/g, ”)replace(/(w{4})(?=w)/g, ‘$1 ‘)1、引用 $1…$9 ,是通过 RegExp 来的,而不是新建立的RegExp对象名;
2、你创建的正则对象,被括弧括起来的部分,从左到右,依次是$1…$9 ,
这说明,没有括弧,你也甭想通过,RegExp.$1…$9,拿到任何东西;
下面例子是从javascript帮助文档摘抄的:


一.JS实现方法

'701f3orma43tN5umb6er044567'.replace(/s/g, '').replace(/(w{4})(?=w)/g, '$1 ')  结果: 701f 3orm a43t N5um b6er 0445 67 

详细解释

replace(/s/g, '')

s:匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ fnrtv]。注意 Unicode 正则表达式会匹配全角空格符。 将空白字符调换为空字符串 

replace(/(w{4})(?=w)/g, '$1 ')

将字符串前面符合条件的4个字符替换为4个字符和空格 

$1的意思

示例

1、引用 $1...$9 ,是通过 RegExp 来的,而不是新建立的RegExp对象名;
2、你创建的正则对象,被括弧括起来的部分,从左到右,依次是$1...$9 ,
这说明,没有括弧,你也甭想通过,RegExp.$1...$9,拿到任何东西;
下面例子是从javascript帮助文档摘抄的:

function matchDemo(){    var s;    var re = new RegExp("d(b+)(d)","ig");    var str = "cdbBdbsbdbdz";    var arr = re.exec(str);    s = "$1 contains: " + RegExp.$1 + "n";//$1 contains: bB    s += "$2 contains: " + RegExp.$2 + "n";//$2 contains: d    s += "$3 contains: " + RegExp.$3;//$3 contains:     return(s); } 

详细解释

var re = new RegExp("d(b+)(d)","ig");
var str = "cdbBdbsbdbdz";
var arr = re.exec(str);
在上面的正则的意思是匹配"db(一次或多次,忽略大小写)d"的字符串,匹配执行之后,匹配出来的数据是: c dbBd bsb dbd z中的dbBd和dbd

$数字内容是从第一个匹配的字符串中取出的,此时第一个匹配的字符串为"dbBd"

$1对应的是第一个括弧中的(b+),大小写忽略,所以是 bB
$2对应的是第二个括弧中的(d),d
$3没有,空。

?=、?<=、?!、?<! 的使用区别

exp1(?=exp2):查找 exp2 前面的 exp1。

JAVA和JS字符串每4个字符添加空格

(?<=exp2)exp1:查找 exp2 后面的 exp1。

JAVA和JS字符串每4个字符添加空格

exp1(?!exp2):查找后面不是 exp2 的 exp1。

JAVA和JS字符串每4个字符添加空格

(?<!exp2)exp1:查找前面不是 exp2 的 exp1。

JAVA和JS字符串每4个字符添加空格

二.JAVA实现方法

"shjfhjskjfhjskdfhlskdfhls ".trim().replaceAll("(.{4})", "$1 ")  结果:shjf hjsk jfhj skdf hlsk dfhl s 

站在巨人肩膀上摘苹果

https://blog.csdn.net/jafer/article/details/84133639

https://www.runoob.com/regexp/regexp-syntax.html