Если вы обнаруживаете, что хотите скрыть детали от себя, это может быть запахом кода, который у вашего класса слишком много обязанностей. Подумайте об извлечении одной из обязанностей в новый класс.
Удалить кавычки вокруг регулярных выражений. В JS регулярные выражения вводятся при разборе /
, они не являются строками.
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="">