用提示/回调UI替换正则表达式
Regex replacement with prompting/callback UI
我正在尝试编写一个函数,该函数接受一长串文本,识别文本中的占位符,并提示用户提供应该取代占位符的值。占位符的标记看起来类似于用于图像或链接的标记:
some text, some more text, ?[name][description] more text, not just commas
其中name
和description
是文本的任意运行。当我找到这些占位符时,我想要弹出一个格式良好的对话框,使用名称和描述,并让用户提供替换值。
我已经有了一个很好的函数(称为htmlPrompt
),您可以在其中交给它一段HTML(用于提示的主要部分),有一个文本框,然后调用您提供的结果的回调函数(或null
,如果按下取消),具有以下签名:
function (htmlText, inputStartValue, callback)
在插入此函数之前,我编写了大致的代码:
myText = myText.replace(/('?'[(.+)'][ ]?(?:'n[ ]*)?'[(.+)'])/g,
function (wholematch, m1, m2, m3) {
var repValue = prompt(m2);
if (repValue == null)
{
return m1;
}
return repValue;
});
它使用DOM内置的prompt
方法-当涉及到格式化时,它并没有真正为我做足够的工作。
然而,我想不出一种插入htmlPrompt
的方法-它只有模拟一个模态对话框,并通过调用callback
提供最终结果。
我确实想过尝试手动做替换,使用match
而不是replace
的结果-但据我所见,match
返回的值只是字符串-它们不会给你任何有用的东西(例如在整个文本中匹配的位置)。
- 查找文本 中的每个占位符
- 提示用户更换,使用
name
和description
值 - 用用户提供的值替换文本中的占位符表达式。
对于name
和description
元组:
首先使用match
读取name
和desription
。提示用户。然后使用replace
替换这些
相关文章:
- 如何用正则表达式替换特定的JavaScript注释
- 如何在单个正则表达式中替换多个值
- 用特定的javascript正则表达式替换每个单词
- 字符串替换正则表达式,开头为空格
- 用Javascript实时替换正则表达式
- 用 javascript 替换正则表达式中的部分文本
- JavaScript 替换正则表达式而不是全局
- 字符串替换正则表达式不起作用
- JavaScript - 替换/正则表达式以格式化论坛中的引号
- Javascript替换-正则表达式
- 用Javascript替换正则表达式转义$to$
- JS替换正则表达式,但在输出中使用部分表达式,如变量
- Javascript替换正则表达式不按预期工作
- 如何在Javascript中忽略/允许多个换行符替换正则表达式
- 传递变量来替换正则表达式函数
- 字符串用正则表达式替换正则表达式字符类
- 如何用匹配长度的$ string替换正则表达式匹配
- 用提示/回调UI替换正则表达式
- UltraEdit查找并替换正则表达式
- 无法用javascript替换正则表达式