取消字符串替换
Cancel a string.replace
我有一个由多个string.replace('x','y')
修改的字符串,这些替换命令由复选框激活,到目前为止,当其中一个复选框未选中时,我还无法自动反转过程。我找到的唯一解决方案是在复选框被取消选中时执行string.replace('y','x')
。。。还有其他更清洁的方法吗?
首先,先执行string.replacement('x','y'),然后执行string.lacement('y','x')以撤消它将不起作用。原因如下:
起始字符串:"zxyxz"replace('x','y')会给你"zyyyz"replace('y','x')会给你一个"zxxxz",这显然不是你开始使用的。
这是你想要的东西,我想:
http://fiddle.jshell.net/XZE9v/1/
每次点击/取消点击复选框时,它都会重新应用规则。
如果你看不到它,这里是代码:
HTML:
<form id="myForm">
<input type="text" id="originalText" />
<br/>
a|x<input type="checkbox" data-find="a" data-replace="x" onclick="updateRegex()" />
<br/>
b|y<input type="checkbox" data-find="b" data-replace="y" onclick="updateRegex()" />
<br/>
c|z<input type="checkbox" data-find="c" data-replace="z" onclick="updateRegex()" />
</form>
<br/>
<div id="display"></div>
JS:
function updateRegex() {
var original = document.getElementById("originalText").value;
var newString = original;
var elems = document.getElementById("myForm").childNodes;
for(var i=0; i<elems.length; i++)
{
if ( "checkbox" == elems[i].type && elems[i].checked)
{
var regexp = new RegExp(elems[i].getAttribute("data-find"), 'g');
newString = newString.replace(regexp, elems[i].getAttribute("data-replace"));
}
}
document.getElementById("display").innerHTML = newString;
}
创建一个包含初始字符串值的数组。对阵列执行所有复选框操作。使用此数组获取最终输出字符串。
var array = ['Moe','Chuck','Larry']
function findItem(val){
var index = array.indexOf(val);
if(index != -1){
array[index] = val;
}
}
function onSubmit(){
return array.toString();
}
相关文章:
- 如何用jquery替换字符串中可能变化的字符
- 用数字单位替换字符串的一部分
- 替换字符串javascript中的所有特殊字符..
- 替换字符串的脚本;在某些网站上不起作用
- 使用javascript替换字符串中除第一个和最后一个之外的所有字符
- 替换字符串中的占位符值
- 用HTML元素替换字符串的一部分
- JavaScript来替换字符串中的变量
- 如何替换字符串中最后一个出现的变量
- 在JavaScript中,如何用一个字符替换字符串中的所有字母
- 替换字符串中的数字
- 如何使用JavaScript Regex替换字符串中双引号之间的文本
- JavaScript:替换字符串两边的字符
- 用JQuery/Javascript替换字符串中的所有逗号
- 替换字符串的下一个匹配项
- JavaScript 不会替换字符串的最后一个符号
- 在 JavaScript 中替换字符串中的字母
- 修复了如何在容器中查找和替换字符串的功能
- 需要在 javascript 倒计时达到 0 后替换字符串
- j如何从给定字符串的一部分替换字符串