首页 > 解决方案 > javascript中变量的RegExp逻辑问题

问题描述

我们有一些复选框,当每个检查都为真时,一个值将被添加到单个文本框

当每个检查都为假时, 它们自己的值将被删除。

我希望我解释得很好。

无论如何......这是我的代码:

<script>
      function <?php echo $fff; ?>q(){
            document.getElementById('<?php echo $chid;  ?>').checked = false;
            var v;
            v=document.getElementById('<?php echo $lblid; ?>').innerText;
            var ab;
            ab=document.getElementById('ab').value;
            var t;
            let a = document.getElementById('<?php echo $idlevel; ?>').innerText;
            const b = document.getElementById('<?php echo $txtid; ?>').value;
            const c = '-' + b + '-' + a;
            var reg;
            reg= new RegExp(c, 'g');
            t=ab.replace(reg,'');
            document.getElementById('ab').value=t;
            document.getElementById('<?php echo $lblid; ?>').innerHTML='<?php echo $talent; ?>';
        }
</script>

我知道这不是一个干净的代码:)

顺便说一句ab是我的文本框。是我的c价值。

但问题是: reg= new RegExp(c, 'g');部分不接受c作为价值。

当我这样做时它有效:reg= new RegExp('word', 'g');

但它不接受任何变量。

请帮忙。

标签: javascriptphphtmlregexvariables

解决方案


尝试 :

 const c = '-' + b + '-' + a;
 var newString = new String(c)
 var reg = new RegExp(newString, "g");

推荐阅读