javascript - Javascript - 替换页面中以开头的所有字符串
问题描述
我正在撞墙。我正在尝试将页面中以“Person 1”开头的所有字符串替换为“Person 1 (ValueFromPreviousField)”。
我无法应用以“Person 1”逻辑开头的替换整个字符串,所以每次我点击更新按钮时,前一个“(ValueFromPreviousField)”都会停留在字符串的末尾(我显然不想要) .
function test() {
var N1 = document.getElementById("Name1").value;
var N2 = document.getElementById("Name2").value;
document.body.innerHTML = document.body.innerHTML.replace(/Person 1 */g, "Person 1 (" + N1 +")").replace(/Person 2/g, "Person 2 (" + N2 +")");
}
这是一个带有示例 html 的小提琴:http: //jsfiddle.net/ndt50xgo/20/
PS:由于这是由简码生成的 html,我无法为所有这些跨度分配类或 id。
解决方案
考虑一下:如果您以 开头x y
并替换x
为x a
,则最终以x a y
. 现在,如果你在那之后替换x
为x b
,你最终会得到x b a y
,因为没有什么会导致你的文本恢复到x y
第一个。这同样适用于您的示例。您的正则表达式还应该匹配您添加的任何文本,以确保它也被替换。
因此,它当然/Person 1 */g
可以有/Person 1( \(.*?\))?/g
and for 。/Person 2 */g
/Person 2( \(.*?\))?/g
推荐阅读
- azure - 部署的 Azure 烧瓶应用始终显示默认登录页面
- java - Firebase 实时数据库删除前 20 个项目
- angular - 获取选择选项属性值反应形式
- perl - 更改 AgentTicketZoom OTRS6 中的客户信息字段
- java - Cql 时间数据类型到 java 时间数据类型
- scala - 如何在while中使用withColumn Spark Dataframe scala
- reactjs - Babel反应jsx配置不起作用
- java - 如何读取 Web 服务器响应中的标头
- python - 提高应用方法的性能
- javascript - 使用 Jest 测试 3rd 方模块中的匿名函数