如何在javascript中替换引号内的字符串?
我在javascript/jQuery字符串中有这个字符串(这个字符串是从html(如何在javascript中替换引号内的字符串?,javascript,jquery,Javascript,Jquery,我在javascript/jQuery字符串中有这个字符串(这个字符串是从html($(“#shortcode'))元素值中获取的,如果用户单击一些按钮,这些元素值可以更改) 在一个文本框(名为incl_sc)中,我有以下值: include cols="2,4" 我想用文本框中的值替换上述字符串中的include_cols=“1,2,4” 基本上是这样的: 如何在此处替换include_cols值?(include_cols=“2,4”而不是include_cols=“1
$(“#shortcode')
)元素值中获取的,如果用户单击一些按钮,这些元素值可以更改)
在一个文本框(名为incl_sc
)中,我有以下值:
include cols="2,4"
我想用文本框中的值替换上述字符串中的include_cols=“1,2,4”
基本上是这样的:
如何在此处替换include_cols值?(include_cols=“2,4”
而不是include_cols=“1,2,4”
)我在很多方面都很出色,但regex不是其中之一。我想这里应该用正则表达式
我正在尝试这个:
var s = $('#shortcode').html();
//I want to replace include cols="1,2,4" exclude cols="3"
//with include_cols="1,2" exclude_cols="3" for example
s.replace('/([include="])[^]*?\1/g', incl_sc.val() );
但是我没有得到任何替换(字符串s与$(“#shortcode”).html()是同一个字符串。显然我在做一些非常愚蠢的事情。请帮助:-)首先,我认为您需要删除引号并修复一点正则表达式
const r=/(include\cols=\”(.*)(\”)/g;
s、 替换(r,`1${incl_sc.val()}$3`)
基本上,我对第一部分和最后一部分进行分组,以便在替换结束时包含它们。您还可以避免创建第一个组和最后一个组,并将其逐字放入replace函数的最后一个参数中,如下所示:
const r=/include\u cols=\“(.*)\”/g;
s、 替换(r,`include_cols=“${incl_sc.val()}”`)
首先,我认为您需要删除引号并修复一点正则表达式
const r=/(include\cols=\”(.*)(\”)/g;
s、 替换(r,`1${incl_sc.val()}$3`)
基本上,我对第一部分和最后一部分进行分组,以便在替换结束时包含它们。您还可以避免创建第一个组和最后一个组,并将其逐字放入replace函数的最后一个参数中,如下所示:
const r=/include\u cols=\“(.*)\”/g;
s、 替换(r,`include_cols=“${incl_sc.val()}”`)
简而言之,您需要的是
s.replace(/include cols="[^"]+"/g, incl_sc.val());
你的代码有几个问题
- 要将正则表达式与
一起使用,必须将正则表达式作为第一个参数传递,但实际上传递的是字符串 这是一个regex文本String.prototype.replace
,而这不是/regex/
'/实际上是一个字符串/'
- 在您的问题中提供的文本中,
写为include\cols
(带空格)include cols
- 你的正则表达式是错误的。我建议在这里对它们进行测试,如果您愿意,还可以从中了解更多信息
上面的代码将用
文本区域中的任何内容替换零件include cols=“1,2,3”
,而不管引号之间有什么内容(只要它不包含另一个引号)。简而言之,您需要的是
s.replace(/include cols="[^"]+"/g, incl_sc.val());
你的代码有几个问题
- 要将正则表达式与
String.prototype.replace
一起使用,必须将正则表达式作为第一个参数传递,但实际上传递的是字符串
这是一个regex文本/regex/
,而这不是'/实际上是一个字符串/'
- 在您的问题中提供的文本中,
include\cols
写为include cols
(带空格)
- 你的正则表达式是错误的。我建议在这里对它们进行测试,如果您愿意,还可以从中了解更多信息
上述代码将用文本区域中的任何内容替换零件include cols=“1,2,3”
,而不考虑引号之间的内容(只要它不包含另一个引号)