2

textboxjavascript を使用して、値を囲む中括弧を追加および削除しようとしています。

私がこれまでに行ったことは、それらを正しく追加することですが、でそれらを削除することに途方に暮れてい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 に答える