Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
撤消简单javascript事件-从文本框中删除大括号_Javascript_Textbox - Fatal编程技术网

撤消简单javascript事件-从文本框中删除大括号

撤消简单javascript事件-从文本框中删除大括号,javascript,textbox,Javascript,Textbox,我试图用javascript添加和删除文本框值周围的大括号 到目前为止,我所做的是正确地添加它们,但是在取消选中时删除它们让我不知所措。这是我的密码: <script> Toggle(); function Toggle(){ if (document.form1.icd.checked){ document.form1.amln.value= "{" + document.form1.amln.value + "}"; } } </script>

我试图用javascript添加和删除
文本框
值周围的大括号

到目前为止,我所做的是正确地添加它们,但是在
取消选中
时删除它们让我不知所措。这是我的密码:

 <script>

 Toggle();
 function Toggle(){
 if (document.form1.icd.checked){
 document.form1.amln.value= "{" + document.form1.amln.value + "}";
 } 


 }
 </script>

<input type="checkbox" name="icd" value="icd" onClick="Toggle();" /> 

<input type="text" name="amln" id="amln" />

切换();
函数切换(){
如果(文件格式1.icd.已勾选){
document.form1.amln.value=“{”+document.form1.amln.value+“}”;
} 
}

您是否也要删除用户键入的任何花括号(或者不必担心)?如果是这样,一些简单的正则表达式应该可以工作:

var tb = document.form1.amln;
tb.value = tb.value.replace(/\{/g).replace(/\}/g);

要卸下支架,请使用:

function Toggle() {
    var form = document.form1;
    var field = form.amln;

    if (form.icd.checked) {
        field.value = "{" + field.value + "}";
    } else {
        field.value = field.value.replace(/(^\{|\}*$)/g, '');
    }
} 
如果只想删除每个前大括号或后大括号中的第一个,可能需要执行更复杂的操作

field.replace(/\{/, '').split('').reverse().join('').replace(/\}/, '').split('').reverse().join('');

这类操作的效率可能不是最好的,但是如果您使用的是小字符串,这可能无关紧要。

匹配开始和结束

var tb = document.form1.amln;
tb.value = tb.value.replace(/[{}]/g,"")
删除任何{和}

var tb = document.form1.amln;
tb.value = tb.value.replace(/[{}]/g,"");
将其与支票相结合

function addBraces() {
    var fm = document.form1,
        tb = fm.amln;
    tb.value = tb.value.replace(/[{}]/g,"");  //doing it here in case {} already exist
    if (fm.icd.checked) {
        tb.value = "{" + tb.value + "}";
    } 
}

你在哪里取支架?您的代码中是否缺少
else
语句?@epascarello-我可能疯了,但不会将两个大括号一一匹配?我想两次替换是最简单的。
tb.value.replace(/^\{124;\}$/g,”)
使用或的功能。如果你不在乎开头和结尾:
replace(/[{}]/g,“”)
@epascarello-这是值得自己回答的-发布它,我会+1@epascarello这就是方法。比我快。谢谢你们,修好了!谢谢你想投票选出最好的答案@Jeff-如果可以的话,我会再次+1你。欢迎来到SO:)