我需要在下划线后替换随机字符串这里是我的代码
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'));
});
答案 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