以下字符串表示 View 模型属性,在本例中它有 3 个不同的索引:
PROGRAMA_FASES[1].PROGRAMA_FASE_REPLICAS[0].PROGRAMA_FASES.PROGRAMA_PREGUNTAS[2].值
我正在使用这些函数来增加第一个索引或最后一个索引。
function increment_last(v) {
return v.replace(/[0-9]+(?!.*[0-9])/, function (match) {
return parseInt(match, 10) + 1;
});
}
function increment_first(v) {
return v.replace(/(\d+)/, function (match) {
return parseInt(match, 10) + 1;
});
}
...如您所见,我在增加数字之前使用正则表达式来匹配数字。
你能帮我设计一个只匹配中间索引的正则表达式吗?在这种情况下,它将是“0”。
非常感谢
最佳答案
如果模式一致 (TEXT[NUMBER].TEXT[NUMBER].TEXT[NUMBER]
),您可以匹配所有匹配项,然后选择第二个匹配项。一个简单的例子(假设上面的 TEXT 始终是字符串字符并且从不包含数字)是:
var number = "PATTERN[0].TO[1].MATCH[2]".match(/\d/g)[1];
如果您希望混合数字并且只想匹配括号中的数字,您可以更新正则表达式,例如 /\[\d\]/g
,然后选择数字从匹配的括号内开始。
关于javascript - 正则表达式匹配中间的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27727016/