Javascript 如何用另一个字符替换输入值中的一个字符?

Javascript 如何用另一个字符替换输入值中的一个字符?,javascript,jquery,html,Javascript,Jquery,Html,我一直在试图找到一种方法来替换输入值中字符串的一部分,但一直无法使其正常工作 输入字段如下所示: <input type="text" value="{'value': 'e', 'provider': {'provider_id': '6', 'dmnid': '2446-0'}}" name="Link" /> 您可以使用简单的Regex/'/g来实现这一点 注:g使您的正则表达式全球化 $('input[name=Link]').val(函数(索引,值){ 返回值。替换(/

我一直在试图找到一种方法来替换输入值中字符串的一部分,但一直无法使其正常工作

输入字段如下所示:

<input type="text" value="{'value': 'e', 'provider': {'provider_id': '6', 'dmnid': '2446-0'}}" name="Link" />

您可以使用简单的Regex
/'/g
来实现这一点

注:
g
使您的正则表达式全球化

$('input[name=Link]').val(函数(索引,值){
返回值。替换(/“/g,”);
});

当前代码的问题在于:

  • 您没有转义字符串中的单引号
  • 即使您转义它,它也只会替换目标字符串中第一个出现的单引号
  • 您可以使用带有
    g
    标志的正则表达式替换字符串中出现的所有单引号:

    $('input[name=Link]').val(函数(索引,值){
    返回值。替换(/“/g,”);
    });
    
    您可以使用
    /\'/g
    在全局级别将所有单引号替换为双引号。在表达式中使用引号时,使用
    \'
    \'
    将是安全的

    $('input[name=Link]').val(函数(索引,值){
    返回值。替换(/\'/g,“\”);
    });
    
    以下是我使用JQuery的方法:

    <input type="text" value="{'value': 'e', 'provider': {'provider_id': '6', 'dmnid': '2446-0'}}" name="Link" />
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script>
    var link=$('input[name=Link]');
    link.val(link.val().split("'").join('"'));
    </script>
    
    
    var link=$('input[name=link]');
    link.val(link.val().split(“”).join(“”);
    
    str.replace(/'/g'”);使用
    /\'/g
    将把所有单引号替换为双引号:-)是否更容易更改为:value='{“value”:“e”,…}'?