javascript - 使用 javascript 替换 id 和 name

标签 javascript jquery

我正在尝试使用 javascript 正则表达式替换 inputidname,不确定我的正则表达式有什么问题

<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 中,正则表达式是通过 / 解析时引入的,它们不是字符串。

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="">

关于javascript - 使用 javascript 替换 id 和 name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55231242/

相关文章:

javascript - subscribe 和 catch 运算符中的 onError 有什么区别?

javascript - 如何在 JSX 中循环尝试数据

jquery - Accordion 中的过渡效果由我创建

php - 在 jquery 和 php 中显示来自 dropmenu 的数据库的结果

jquery - 使用 jQuery 加载 img src 作为其所在 Div 的背景图像

javascript - 如何触发隐藏字段的 onChange 事件?

javascript - 使用 onkeyup 事件时不能只显示一个 .children()

javascript - 在 WordPress 插件中加载自定义 JavaScript

javascript - 寻找一种用 jquery 构建滚动条的简单方法

php - ajax,以 json 形式检索多维 php 数组