2015-09-11 176 views
1

我有一个下面的字符串。我需要删除所有特殊字符和空格。从javascript中的字符串替换特殊字符和空格

var Uid = "s/Information Needed1-s84102-p306"; 

我试过下面的代码,它并没有替换字符串中的空格。

console.log(Uid.replace(/[^\w\s]/gi, '')}") 

输出是: - sInformation Needed1s84102p306

我想要的输出sInformationNeeded1s84102p306

+0

请澄清,如果'_'应该被删除或没有。 –

回答

4

使用简单地尝试

/[\W_]/g 
  • \W匹配任何非单词字符[^a-zA-Z0-9_]

包括_,如果你也想删除它,然后

Regex

2

你可以使用:

console.log(Uid.replace(/\W+/g, '')}") 

\W将匹配任何非包含空格的单词字符。

RegEx Demo

+0

你实际上并不需要+,对吧?因为你有g。 – potatopeelings

+1

即使'g'标志'+'有利于提高效率,因为一次只能替换一个以上的非单词字符。 – anubhava

1

您可以使用此表达对你的情况

var x = "s/Information Needed1-s84102-p306"; 
console(x.replace(/[^A-Z0-9]/ig, "")); 

这里是工作Link

+1

有趣的是,如果'_'也应该被删除,这个解决方案可能会变得更好。 –