用于匹配空格的正则表达式,前面没有逗号

时间:2009-08-14 12:20:20

标签: javascript regex

我需要像这样转换一个字符串:

tag, tag2, longer tag, tag3

为:

tag, tag2, longer-tag, tag3

为了简短起见,我需要用逗号替换不带逗号的空格,我需要在Javascript中执行此操作

7 个答案:

答案 0 :(得分:5)

我认为这应该有用

var re = new RegExp("([^,\s])\s+" "g");
var result = tagString.replace(re, "$1-");

编辑:在Blixt观察之后更新。

答案 1 :(得分:3)

mystring.replace(/([^,])\s+/i "$1-");有更好的方法,但我永远记不住语法

答案 2 :(得分:1)

[^,] =不是逗号

编辑抱歉,之前没有注意到替换。我现在更新了我的答案:

var exp = new RegExp("([^,]) ");
tags = tags.replace(exp, "$1-");

答案 3 :(得分:0)

text.replace(/([^,]) /, '$1-');

答案 4 :(得分:0)

不幸的是,Javascript似乎不支持负面的lookbehinds,所以你必须使用这样的东西(从here修改):

var output = 'tag, tag2, longer tag, tag3'.replace(/(,)?t/g, function($0, $1){
    return $1 ? $0 : '-';
});

答案 5 :(得分:0)

([^,]) - 第一个字符不是逗号,第二个字符是空格,它搜索那种字符串

答案 6 :(得分:-2)

([a-zA-Z] ){1,}

也许?没有测试过。类似的东西。