替换所有空白字符


Answers:


315

你要 \s

匹配单个空格字符,包括空格,制表符,换页符,换行符。

相当于

[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]

火狐[ \f\n\r\t\v]IE


str = str.replace(/\s/g, "X");

41
+1是为了记住表明该replace功能未修改str,因此您必须将其分配回来。
FishBasketGordo 2011年

1
在函数中,您可以返回str.replace,因此您无需在该范围内进行分配。
史蒂夫·K

记住要使用R perl = TRUE,例如gsub(pattern = "[\\s]+", ..., perl = TRUE)
MS Berends

30

\s是一个涵盖所有空白的元字符。您无需使其不区分大小写-空白不包含大小写。

str.replace(/\s/g, "X")

19

如果要用单个字符更改所有多个连接的空格,也可以使用此方法:

str.replace(/\s+/g,'X');

在此处查看其运行情况:https : //regex101.com/r/d9d53G/1

说明

/ \s+/克

  • \s+匹配任何空白字符(等于[\r\n\t\f\v ]
  • + 量词 -匹配一次和无限次,尽可能多地匹配,并根据需要返回(贪婪)

  • 全局模式标志
    • g修饰符:g小叶。所有比赛(第一次比赛后不返回)


4

如果您使用

str.replace(/\s/g, "");

它替换所有空格。例如:

var str = "hello my world";
str.replace(/\s/g, "") //the result will be "hellomyworld"

4

试试这个:

str.replace(/\s/g, "X")

那不行 \s\n\t匹配:任何空格字符,后跟换行符,再按Tab。
Daniel Cassidy

3

不是/ gi而是/ g

var fname = "My Family File.jpg"
fname = fname.replace(/ /g,"_");
console.log(fname);

"My_Family_File.jpg"

1

实际上它已经工作了,但是

试试这个。

将值/ \ s / g放入一个字符串变量中,例如

String a = /\s/g;

str = str.replaceAll(a,"X");

你从哪里来的replaceAll
Ionel Lupu

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.