用正则表达式替换字符串中的随机数

时间:2014-09-11 12:31:19

标签: javascript jquery regex

我需要在下划线后替换随机字符串这里是我的代码

var map_list_tmpl_pre = '<div>some odd</div><ul><li class="single_map_list" onClick="showlist(\'parent_id_3aXw\')"></li>
    <li class="single_map_list" onClick="showlist(\'parent_id_3aXw\')"></li>
    </ul>';

$(map_list_tmpl_pre).filter('.single_map_list').each(function(index, currentLink) {
    alert(currentLink.outerHTML.replace(/(parent_id_)[0-9][a-z][A-Z]/, 'parent_id_newID'));
});

1 个答案:

答案 0 :(得分:2)

[0-9][a-z][A-Z]更改为[0-9a-zA-Z]+

[0-9][a-z][A-Z]表示一个数字后跟一个小写字母,后跟一个大写字母,例如这将匹配:

5aA

但这不会:

5Aa

因此,使用您当前的示例,它会匹配parent_id_3aX字符串中的parent_id_3aXw,并将其替换为最终为parent_id_newIDw

使用[0-9a-zA-Z]+表示一个或多个模式匹配(由+表示。它可以是0-9和az和AZ范围内的任何字符,顺序不会&#39无所谓。

或者,您可以简单地添加i标志以使其不区分大小写,而不必同时指定小写和大写范围:

replace(/(parent_id_)[0-9A-Z]+/i

此外,您不应该将parent_id_括在括号中,除非您以后想要使用反向引用来引用它。这也应该有效:

replace(/parent_id_[0-9A-Z]+/i