JavaScript 替换/正则表达式

2023-11-23

给定这个函数:

function Repeater(template) {

    var repeater = {

        markup: template,

        replace: function(pattern, value) {
            this.markup = this.markup.replace(pattern, value);
        }

    };

    return repeater;

};

我该如何制作this.markup.replace()全局替换?问题就在这里。如果我像这样使用它:

alert(new Repeater("$TEST_ONE $TEST_ONE").replace("$TEST_ONE", "foobar").markup);

警报的值为“foobar $TEST_ONE”。

如果我改变Repeater到以下内容,然后在 Chrome 中替换任何内容:

function Repeater(template) {

    var repeater = {

        markup: template,

        replace: function(pattern, value) {
            this.markup = this.markup.replace(new RegExp(pattern, "gm"), value);
        }

    };

    return repeater;

};

...警报是$TEST_ONE $TEST_ONE.


您需要对任何正则表达式字符进行两次转义(一次用于字符串中的斜杠,一次用于正则表达式):

  "$TESTONE $TESTONE".replace( new RegExp("\\$TESTONE","gm"),"foo")

否则,它会查找行尾和“TESTONE”(它永远找不到)。

就我个人而言,出于这个原因,我不太喜欢使用字符串构建正则表达式。所需的逃避程度可能会导致你酗酒。我确信其他人有不同的感受,并且喜欢在编写正则表达式时喝酒。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 替换/正则表达式 的相关文章

随机推荐

  • PBS_MARQUEE 进度条 WinApi

    我正在尝试让 PBS MARQUEE 类型的进度条正常工作 我可以创建进度条 但我就是无法让它移动 如果发现这个 但我不清楚我必须做什么 事实证明 由于我将进度条作为资源而不是使用 CreateWindowEx 所以我必须使用 SetWin
  • ::(双冒号)在 DOS 批处理文件中意味着什么?

    我找到了这个程序web archive org http baiyunmanor com blog work get current date time in dos batch file This uses Windows Scripti
  • JPA 标准生成器:如何按顺序替换字符串并将其转换为数字?

    有人可以建议我如何使用 JPA Criteria 构建器 API 构建以下查询吗 SELECT id name date version FROM public upgradeTable order by CAST replace vers
  • 快速计算 .numpy 数组中每 N 行的平均值

    我有一个非常大的屏蔽 NumPy 数组 originalArray 有很多行和两列 我想取每两行的平均值originalArray并建立一个newArray其中每一行是两行的平均值originalArray so newArray行数为or
  • 在 javascript 或着色器中更好地乘以矩阵?

    我一直在看几个 webgl 示例 考虑MDN 的教程 他们的顶点着色器将顶点乘以透视矩阵和世界位置矩阵 gl Position uPMatrix uMVMatrix vec4 aVertexPosition 1 0 But the uMVM
  • Java序列化-Android反序列化

    我尝试过在 Java 和 Android 之间实现跨平台序列化 我使用了 Serialized 并将 Android 中的代码与桌面 Java 中的代码放在同一个包中 来源 java desktop 序列化 Student student
  • 从 Service Fabric 集群中删除应用程序

    我尝试使用服务结构资源管理器从服务结构中删除应用程序 我使用 删除应用程序 操作删除了我的应用程序 然后 当我尝试取消配置应用程序类型时 我收到错误消息 错误 版本 1 0 0 的应用程序类型无法取消配置为 它仍然包含活动的应用程序 我可以
  • “await Task.Run(); return;”之间的任何区别和“返回Task.Run()”? [复制]

    这个问题在这里已经有答案了 以下两段代码之间是否存在概念上的差异 async Task TestAsync await Task Run gt DoSomeWork and Task TestAsync return Task Run gt
  • 计算文件中的单词数

    我在计算文件中的字数时遇到问题 我采取的方法是 当我看到空格或换行符时 我就知道要计算单词数 问题是 如果我在段落之间有多行 那么我最终也会将它们算作单词 如果您查看 readFile 方法 您就可以看到我在做什么 您能帮助我并指导我如何解
  • Monad 变压器的使用

    我正在 Haskell 书中读到有关 monad 转换器的内容 作者提到如下 莫纳德呢 组合两个任意数据类型没有问题 有 Monad 实例 我们在使用 Compose 时已经看到了这一点 Maybe 和 list 都定义了 Monad 实例
  • Github - 文件 XYZ 为 126.80 MB;这超出了 GitHub 的文件大小限制 100.00 MB

    我有一个本地存储库 其中意外添加了一个大文件 现在我落后了近 100 个提交 当我尝试推送到 GitHub 时 出现错误 我需要帮助做任何我需要做的事情才能推送这个存储库的其余部分 我不需要这个文件 可以永久删除它 旁注 这是一个包含 IP
  • RoR 预编译资产在 rake asset:precompile 时失败 - 在基本上空的 application.js 上

    Running bundle exec rake assets precompile RAILS ENV production trace Execute assets precompile primary rake aborted Typ
  • 将带重音的文本转换为 ASCII 字符?

    我想在 Javascript 中将重音字母和各种编码转换为纯英文 ASCII 编码 并想知道有哪些可能的选项 我需要的是 clair becomes eclair b r becomes bar becomes privet becomes
  • R 中的对数刻度图

    我想绘制聚类系数和平均最短 路径作为 Watts Strogatz 模型参数 p 的函数如下 这是我的代码 library igraph library ggplot2 library reshape2 library pracma p l
  • 将顶点大小与 igraph 中的标签大小匹配

    我正在尝试使用 R 中的 igraph 绘制小型网络 网络中的每个顶点都有一个名称 相当于其标签 我想让每个顶点都有一个矩形符号 该符号足够大以适合其标签 这是我的主要灵感 使用 igraph 执行此操作的最佳方法是什么 编辑 更多信息 代
  • 我可以在没有预览的情况下使用 Android 相机吗?

    我在 Android 中创建了一个应用程序 使用相机可以测量用户脸部到手机屏幕之间的距离 问题描述 现在我想让它在后台运行 以便在我使用其他应用程序时可以使用该功能 它的意思是我应该在没有预览的情况下打开服务中的相机 并在服务中处理它 我还
  • 用 C# 制作图形饼图

    我正在尝试编写一个 Windows 应用程序 显示一个带有七个不等切片 25 20 18 17 10 10 10 的饼图 所有切片的颜色都不同 到目前为止 我已经制作了附有颜色的钢笔和画笔并画了一个圆圈 这就是我到目前为止所拥有的 priv
  • 在特定轴刻度上应用粗体字体

    这是一个情节 library ggplot2 library tibble ggplot head mtcars gt rownames to column cars aes x reorder cars drat y drat geom
  • log4net AdoNetAppender - SqlParameterCollection 不包含参数

    在我的一个项目中 我收到此错误 System IndexOutOfRangeException SqlParameterCollection does not contain SqlParameter with ParameterName
  • JavaScript 替换/正则表达式

    给定这个函数 function Repeater template var repeater markup template replace function pattern value this markup this markup re