我有这个字符串:
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}";
我花了几个小时试图找出如何做到这一点但没有成功。
答案 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 form(example):
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);