这里我有逗号字符串组,如“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.
因为我需要验证在括号中的值应该是数字。我尝试了一些场景,但我需要帮助插入(1)。
function testCases(str){
return (
str.match(new RegExp("\\([^,]+\\)","g")).length == str.split(",").length
);
}
这是jsfiddle
答案 0 :(得分:5)
如果我正确理解你想在逗号之前插入(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)"
答案 1 :(得分:0)
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(',');
}