我需要转换这样的字符串:
tag, tag2, longer tag, tag3
至:
tag, tag2, longer-tag, tag3
为简短起见,我需要将连字符前面没有逗号的空格替换为连字符,并且我需要在Javascript中执行此操作。
我认为这应该起作用
var re = new RegExp("([^,\s])\s+" "g");
var result = tagString.replace(re, "$1-");
编辑:在Blixt观察后更新。
mystring.replace(/([^,])\s+/i "$1-");
有一种更好的方法,但是我永远不记得语法
[^,]
=非逗号
Edit抱歉,之前没有注意到替换。我现在更新了答案:
var exp = new RegExp("([^,]) ");
tags = tags.replace(exp, "$1-");
text.replace(/([^,]) /, '$1-');
[不幸的是,Javascript似乎不支持负面的回溯,所以您必须使用类似的东西(从here修改):
var output = 'tag, tag2, longer tag, tag3'.replace(/(,)?t/g, function($0, $1){
return $1 ? $0 : '-';
});
[^,]
-第一个字符不是逗号,第二个字符是空格,并且它搜索那种字符串
([a-zA-Z] ){1,}
也许?未经测试。这样的东西。