Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果缺少字符串,如何插入括号和值?_Javascript_Jquery_Regex - Fatal编程技术网

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

Javascript 如果缺少字符串,如何插入括号和值?,javascript,jquery,regex,Javascript,Jquery,Regex,这里我有一组带逗号的字符串,比如“stack,flow(2),over(4),temp(0)”,如果字符串没有开括号和闭括号值,我需要插入带(1)的字符串。堆栈(1) 因为我需要验证括号内的值应该是数字。我尝试了一些场景,但我需要帮助来插入(1) 以下是如果我理解正确,您希望在逗号前插入(1),如果没有括号组,则可以执行以下操作: var str = "stack,flow(2),over(4),temp(0)"; str = str.replace(/([^)]),/g, "$1(1),");

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

因为我需要验证括号内的值应该是数字。我尝试了一些场景,但我需要帮助来插入(1)


以下是

如果我理解正确,您希望在逗号前插入
(1)
,如果没有括号组,则可以执行以下操作:

var str = "stack,flow(2),over(4),temp(0)";
str = str.replace(/([^)]),/g, "$1(1),");
结果:
“堆栈(1)、流(2)、超过(4)、温度(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(',');

结果:
“堆栈(1)、流(2)、流(1)、超过(4)、负(1)、温度(1)”

如果我正确理解,如果没有括号组,您希望在逗号前插入
(1)
,则可以执行以下操作:

var str = "stack,flow(2),over(4),temp(0)";
str = str.replace(/([^)]),/g, "$1(1),");
结果:
“堆栈(1)、流(2)、超过(4)、温度(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(',');

结果:
“堆栈(1)、流(2)、流(1)、超过(4)、负(1)、温度(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(',');
}

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

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(',');
}

关于括号内数值的规则是什么?我不明白为什么是2,然后是4,然后是0?括号内的任何数字都应该大于0括号内的数值有什么规则?我不明白为什么是2,然后是4,然后是0?括号内的任何数字都应该大于0这只是我给出的堆栈示例,但任何字符串都可以带有括号外的数字,如堆栈、流(2)、over、temp以及许多带有逗号的字符串,而不仅仅是四个。没问题,这将适用于无限数量的字符串。但是这里缺少验证部分(括号必须包含整数)。但是最后一个地方没有插入临时1的(1)ie。它不应接受stacka(z),over(0)错误消息。2.如果有括号,则插入(1)。3.但最后一个位置没有插入(1)ie,例如temp@user2848031我仍然不确定确切的要求,但你能检查一下新版本吗?如果它不是你想要的,你能用字符串列表和相关的期望结果更新你的问题吗?这只是我给出的例子stack,但是任何字符串都可以带括号,比如stack,flow(2),over,temp,以及许多逗号的字符串,而不仅仅是四个。没问题,这将适用于无限数量的字符串。但是这里缺少验证部分(括号必须包含整数)。但是最后一个地方没有插入临时1的(1)ie。它不应接受stacka(z),over(0)错误消息。2.如果有括号,则插入(1)。3.但最后一个位置没有插入(1)ie,例如temp@user2848031我仍然不确定确切的要求,但你能检查一下新版本吗?如果不是你想要的,你能用字符串列表和相关的期望结果更新你的问题吗?它不应该接受stacka(z),超过(0)错误消息。如果有括号,则插入(1)。它不应该接受stacka(z),超过(0)错误消息。如果有括号,则插入(1)。