使用JavaScript替换ID和名称



我正在尝试使用JavaScript正则表达式替换id的CC_1和name,不确定我的正则表达式

是什么问题
<input data-val="true" data-val-number="The field TotalValue must be a number." id="Notice_NoticeDetails_0__TotalValue" name="Notice.NoticeDetails[0].TotalValue" type="text" value="">

正则表达式测试是选择正确的字符串(测试)

https://www.regextester.com/?fam=108441
https://www.regextester.com/?fam=108442

但是,当我在JavaScript中使用相同的表达式时,它不替换字符串

var $input = $("input");
$input.prop("name", $input.prop("name").replace("/[.*?]/g", "[2]"));
$input.prop("id", $input.prop("id").replace("/_.d?__/g", "_2__"));
alert($input.prop("name"));
alert($input.prop("id"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input data-val="true" data-val-number="The field TotalValue must be a number." id="Notice_NoticeDetails_0__TotalValue" name="Notice.NoticeDetails[0].TotalValue" type="text" value="">

删除正则引号。在JS Regexps中是由/解析引入的,它们不是字符串。

var $input = $("input");
$input.attr("name", $input.prop("name").replace(/[.*?]/g, "[2]"));
$input.attr("id", $input.prop("id").replace(/_.d?__/g, "_2__"));
alert($input.attr("name"));
alert($input.attr("id"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input data-val="true" data-val-number="The field TotalValue must be a number." id="Notice_NoticeDetails_0__TotalValue" name="Notice.NoticeDetails[0].TotalValue" type="text" value="">

最新更新