首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按规定更换字母

问按规定更换字母
EN

Stack Overflow用户
提问于 2018-03-30 22:01:37
回答 2查看 52关注 0票数 0

有一系列的规则。规则指定如何更改输入的单词。屏幕截图显示了程序应该如何工作的一个例子。结果应该是一个字符串"aBct“。我不知道该怎么做。

​

代码语言:javascript
复制
function pushRules(list){
    var rules = "";
    var w1 = document.getElementById('inputw1').value;
    var w2 = document.getElementById('inputw2').value;
    var w = w1+'-->'+w2;
    var li = document.createElement("li");
    var rule = document.createTextNode(w);
    li.appendChild(rule);
}

function applyRule() {
    var str = document.getElementById('inputString').value;
    var numRule = document.getElementById('inputNumRules').value;

    for(var i=0; i<str.length; i++){
      // ...
    }
}
代码语言:javascript
复制
<div class="addRules">
    <h3>Add Rules</h3>
    <form>
        <label>w1:</label><input id="inputw1" type="text"><label> --> w2:</label><input id="inputw2" type="text">
        <input type="button" value="Add" onclick="pushRules()">
    </form>
    <h3>Rules:</h3>
    <div class="container_rules">
        <ui id="list"></ui>
    </div>
</div>

<h3>Input string</h3>
<input type="text" id="inputString">
<form>
    <p>Apply the selected rule to the symbol at number:</p><input type="text" id="inputNumRules" value="0">
    <input type="button" value="Apply rule" onclick="applyRule()">
</form>
<h3>Result</h3>

​

​

​

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-30 22:43:03

工作解决方案。

只需插入规则,然后从0开始写入要应用的规则数。

​

代码语言:javascript
复制
var changeStringFromRules = [];
        var changeStringToRules = [];

        function pushRules(list){
            var rules = "";
            var w1 = document.getElementById('inputw1').value;
            changeStringFromRules.push(w1);
            var w2 = document.getElementById('inputw2').value;
            changeStringToRules.push(w2);
            var w = w1+'-->'+w2;
            var li = document.createElement("li");
            var rule = document.createTextNode(w);
            li.appendChild(rule);
            document.getElementById("list").appendChild(li);
        }

        function applyRule() {
            var str = document.getElementById('inputString').value;
            var numRule = parseInt(document.getElementById('inputNumRules').value);

            if(str.indexOf(changeStringFromRules[numRule])!== -1){
                str = str.replace(changeStringFromRules[numRule], changeStringToRules[numRule]);
            }
            document.getElementById("result").innerHTML = str;
        }
代码语言:javascript
复制
<div class="addRules">
    <h3>Add Rules</h3>
    <form>
        <label>w1:</label><input id="inputw1" type="text"><label> --> w2:</label><input id="inputw2" type="text">
        <input type="button" value="Add" onclick="pushRules()">
    </form>
    <h3>Rules:</h3>
    <div class="container_rules">
        <ui id="list"></ui>
    </div>
</div>

<h3>Input string</h3>
<input type="text" id="inputString">
<form>
    <p>Apply the selected rule to the symbol at number:</p><input type="text" id="inputNumRules" value="0">
    <input type="button" value="Apply rule" onclick="applyRule()">
</form>
<h3>Result</h3>
<p id="result"></p>

​

票数 0
EN

Stack Overflow用户

发布于 2018-03-30 22:36:49

如果我正确理解了这个问题,您只需用其他字符替换输入字符串中的几个字符即可。

您可以使用替换()方法。

所以你要做的就是

代码语言:javascript
复制
"aBcah".replace(/ah/g,'t');

这意味着,用字符串aBcah中的t替换ah的所有出现。

这里我使用了正则表达式,/g的意思是删除所有(全局标志),如果没有它,它只会删除第一个事件。

​

代码语言:javascript
复制
var a = "aBcah".replace(/ah/g,'t');
console.log(a);

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49581974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档