如果缺少字符串,如何插入括号和值

How to insert the parentheses and values if missing string?

本文关键字:插入 字符串 何插入 如果      更新时间:2024-04-05

这里我有一组带逗号的字符串,比如"stack,flow(2),over(4),temp(0)"如果只是没有开括号和闭括号值的字符串,我需要插入with(1)。堆栈(1)。

Expected scenario :
1.insert (1) missing open & close parentheses 
2.within parentheses should be >0 numeric values.
3.within parentheses if any alpha character , show error message.

由于我需要验证括号中的值应该是numeric。我已经尝试了一些场景,但我需要帮助插入(1)。

function testCases(str){
    return (
    str.match(new RegExp("''([^,]+'')","g")).length  == str.split(",").length
    );
}

这是jsfiddle

如果我正确理解您想要在逗号前插入(1),如果没有带括号的组,那么您可以这样做:

var str = "stack,flow(2),over(4),temp(0)";
str = str.replace(/([^)]),/g, "$1(1),");

结果:"stack(1),flow(2),over(4),temp(0)"

如果你还想确保组包含一个严格的正整数,你可以做

var str = "stack,flow(2),flow(k),over(4),neg(-3),temp(0)";
str = str.split(',').map(function(s){
    return s.replace(/('((.*?)'))?$/, function(s,d,e) {
        return '('+ (e>0?e:1)+')'
    })
}).join(',');

结果:"stack(1),flow(2),flow(1),over(4),neg(1),temp(1)"

好吧,我的解决方案有点复杂,但更具相关性,例如它适用于:

stacka(z),flow(2),over(4),temp(0),ccc

这里的代码:

function convert(str) {
    //ends with (num)
    var regexObj = /'('d+')$/;
    return str.split(',').map(function(p) {
        return p + (regexObj.test(p) ? '' : '(1)');
    }).join(',');
}

http://jsfiddle.net/rooseve/pU2Q7/