如何用一个单词中的空格替换下划线,以javascript中的特殊字符开头?

时间:2014-11-12 14:55:00

标签: javascript regex

我有这个字符串:

var str = "{view-map:{lonField_sad:!Longitude,latField:!Handicap_Accessible},currentView:!map}";

我试图将带有空格的 ALL 替换为以惊叹号(!)开头的任何单词,因此该字符串应如下所示:

var str = "{view-map:{lonField_sad:!Longitude,latField:!Handicap Accessible},currentView:!map}";

我花了几个小时试图找出如何做到这一点但没有成功。

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式

!([^_]+)_([^]+)

并替换为$1 $2

var str = "{view-map:{lonField_sad:!Longitude,latField:!Handicap_Accessible},currentView:!map}";
console.log(str.replace(/!([^_]+)_([^]+)/g, "!$1 $2"));

答案 1 :(得分:1)

尝试使用function replacement formexample):

str.replace(/!\w+/g, function(x) { return x.replace(/_/g, ' '); })

Regexp /!\w+/g选择以“!”开头的所有单词。之后,我们将每个字x替换为x.replace(/_/g, ' ')

的结果

答案 2 :(得分:0)

(![^_]+)_([a-zA-Z0-9]+)

试试这个。看看演示。

http://regex101.com/r/tF5fT5/57

var re = /(![^_]+)_([a-zA-Z0-9]+)/gm;
var str = '{view-map:{lonField_sad:!Longitude,latField:!Handicap_Accessible},currentView:!map}';
var subst = '$1 $2';

var result = str.replace(re, subst);