从字符串中查找第二个数字并替换为新数字

时间:2014-11-21 06:26:36

标签: jquery regex

我有以下字符串示例。我想从字符串中找到第二个数字并用其他随机数字替换。我有随机数字,但问题是找到第二个数字并替换为新数字。如何实现这一目标?

1. "data[KPI][0][rows][0][name]"
2. "data[KPI][0][rows][1][name]"
3. "data[KPI][0][rows][2][name]"

预期输出

1. "data[KPI][0][rows][4][name]"
2. "data[KPI][0][rows][5][name]"
3. "data[KPI][0][rows][6][name]"

3 个答案:

答案 0 :(得分:1)

嘿,请试试这个:

 var str="data[KPI][0][rows][0][name]";
 var Result=  str.replace(/(\[\d\]\[[^\]]+\])\[\d\]/, "$1[YourCharTo Replace]");

希望有所帮助

答案 1 :(得分:1)

希望这有帮助,

Java-Script方式

var mystr    = "data[KPI][0][rows][0][name]";

var regex       = /(data\[\D{1,}\[\d{1,}]\[\D{1,}\])(\[\d{0,}])(\[\D{0,}])/;

console.log(mystr.replace(regex,"$1[DesiredNumber]$3"));

PHP方式

$str          = "data[KPI][0][rows][0][name]";

$regex        = "/(data\[\D{1,}\[\d{1,}]\[\D{1,}\])(\[\d{0,}])(\[\D{0,}])/";

$replacements =  '${1}[YourNumber]${3}';

echo preg_replace($regex, $replacements, $str);

答案 2 :(得分:1)

\d+(?=[^\d]*$)

试试这个。看看演示。

http://regex101.com/r/uV3aL0/32

var re = /\d+(?=[^\d]*$)/gim;
var str = 'data[KPI][0][rows][0][name]\ndata[KPI][0][rows][1][name]\ndata[KPI][0][rows][2][name]';
var subst = '';

var result = str.replace(re, subst);