jQuery - 用其他字符替换找到的字符

时间:2015-12-30 14:02:58

标签: javascript jquery

大家好,我有短问题,我在jquery中用字符串替换编写了测试代码。它工作,但我需要调整它来找到给定字符串中的字符x什么工作,但当我更改var res = value.replace(value,“Y”)时它不想与Y字母交换; to var res = myX.replace(myX,“Y”);即如果我将'max'字符串放入文本框输入中,我想在这种情况下仅用字母Y替换x。有谁知道如何改变它? 感谢您的关注和帮助:))

<!DOCTYPE html>

<html>
<head>
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <meta name="viewport" content="width=device-width" />
    <title>test</title>
</head>
<body>
    <div>
        pls provide here your function
        <input type="button" value="Replace" id="lineFunctionClick"/>
        <input type="text" id="myInput">
    </div>

    <script>    
    $("#lineFunctionClick").on("click", function () {
        var value = $("#myInput").val();
        var myX = value.indexOf('x');
        if (myX >= 0)
        {
            var res = value.replace(value, "Y");
            alert("changed" + " " + value + " " + "to" + " " + res);
        } else
        {
            alert("value doesnt exist");
        }
    });

    </script>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

因为你试图替换索引位置而不是'x'。 myX包含搜索字符串的位置。以下更改将解决问题。

替换

var res = value.replace(value, "Y");

var res = value.replace('x', "Y");

答案 1 :(得分:0)

您可以使用正则表达式来执行此操作:

(function(){
  var regex = /x/gi;
  var str1 = "max";
  var str2 = "Xmas";
  var str3 = "XXXxxxxxXxxx";
  
  console.log(str1.replace(regex, 'y'));
  console.log(str2.replace(regex, 'y'));
  console.log(str3.replace(regex, 'y'));
})()