2

textbox我正在尝试使用 javascript添加和删除值周围的花括号。

到目前为止,我所做的是正确添加它们,但我无法在uncheck. 这是我的代码:

 <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" />
4

3 回答 3

2

比赛开始和结束

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 + "}";
    } 
}
于 2012-08-02T19:29:32.577 回答
1

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

var tb = document.form1.amln;
tb.value = tb.value.replace(/\{/g).replace(/\}/g);
于 2012-08-02T19:21:05.397 回答
0

要移除大括号,请使用:

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('');

这种操作的效率可能不是最好的,但如果您使用的是小字符串,它可能并不重要。

于 2012-08-02T19:28:01.653 回答