1

如果有两个句点 (..) 替换为一个 (.),如果有四个或更多句点 (..) 替换为三个 (...)。

要求两个选项同时工作

我试试这种方式

var fieldval = test..
fieldval = fieldval.replace(/\.{2}/g, '.')

输出

test. (with single dot)

var fieldval = test.....
fieldval = fieldval.replace(/\.{4,}/g, '...');

输出

test... (with three dot)

这两个选项应该一起工作。提前致谢

4

2 回答 2

2

尝试

fieldval = fieldval.replace(
    /\.{2,}/g, 
    function(val){ 
        return val.length == 2 ? '.' : '...';
    }
);

演示:小提琴

于 2013-06-24T09:01:56.253 回答
1

如果你想有一个单一的正则表达式,你可以使用

input.replace(/([^.]|^)(?:([.])[.]|([.]{3})[.]+)(?![.])/g, "$1$2$3");
于 2013-06-24T09:07:08.740 回答