老师 问个问题

老师 问个问题

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

<style type="text/css" media="screen">

#regexp{

width: 650px;

margin: 100px auto;

font-size: 14px;

}

#regexp .title{

color: #777;

font-size: 24px;

text-align: center

}

#regexp .textbox{

width: 638px;

height: 150px;

border: 1px solid #ccc;

border-radius: 5px;

padding: 5px;

resize: none;

}

#regexp .testfield{

width: 215px;

padding: 5px;

border: 1px solid #ccc;

}

</style>

</head>

<body>

<div id="regexp">

<h1 class="title">正则表达式测试工具</h1>

<textarea id="userText" class="textbox" placeholder="再次输入待匹配文本"></textarea>

<p>

正则表达式: <input type="text" id='userRegExp' class="testfield" placeholder="在此输入正则表达式">

<input type="checkbox" name='userMOdifier' value="i">忽略大小写

<input type="checkbox" name='userMOdifier' value="g">全局匹配

<input type="checkbox" name='userMOdifier' value="m">多行匹配

<input type="button" name="测试匹配" value="测试匹配" id='matchingBtn'>

</p>

匹配结果:

<textarea  id='matchingResult' class="textbox" disabled="disabled">


</textarea>

</div>


<script>

var userText=document.getElementById('userText'),

    ueserRegExp=document.getElementById('userRegExp'),

    userModifier=document.getElementsByName('userMOdifier'),

    matchingBtn=document.getElementById('matchingBtn'),

    matchingResult=document.getElementById('matchingResult');

          var pattern;

          var modifier='';


          // for(var i=0;i<userModifier.length;i++){

          //  userModifier[i].onclick=function () {

          //  for(var j=0;j<userModifier.length;j++){

          //  if(userModifier[j].checkbox);

          //  }

          //  /* body... */

          //  }

          // }

          function mod () {

           

           for(var i =0;i<userModifier.length;i++){

           if (userModifier[i].checked==true){

                     modifier+=userModifier[i].value;

                 }

           }

           return modifier;

          }

        

    matchingBtn.onclick=function () {



     pattern= new RegExp(ueserRegExp.value,mod()); // /js/

     matchingResult.value=pattern.exec(userText.value)||'(没有匹配)';

     /* body... */

    }

</script>

</body>

</html>

//我觉得把勾选选项的判定放到检测按钮点击事件里不好吗?为什么要再外面给每个checkbox添加事件?

这样做的好处是什么

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,问题解答如下:

1、勾选选项的判定放到检测按钮点击事件里是可以,也能够实现效果。老师可能只是为了将功能区分开,所以单独写了。

2、同学下面粘贴的封装代码是没有问题的,可以达到每次调用函数时(点击事件触发) 清空modifier,很棒!

3、modifier为局部变量,会被清除的。

祝学习愉快!

提问者 宝慕林4466778 2020-06-07 05:37:52

  function mod () {

          var modifier='';

          for(var i =0;i<userModifier.length;i++){

          if (userModifier[i].checked==true){

                     modifier+=userModifier[i].value;

                 }

          }

          return modifier;

          }

这样可以达成每次调用函数时(点击事件触发) 清空modifier吗?

  • 提问者 宝慕林4466778 #1
    还有个附加的小问题 想老师解答一下。。 这个函数调用完 里面的东西在内存里会清空吗?
    2020-06-07 05:50:35
提问者 宝慕林4466778 2020-06-07 05:37:08

  function mod () {

          var modifier='';

          for(var i =0;i<userModifier.length;i++){

          if (userModifier[i].checked==true){

                     modifier+=userModifier[i].value;

                 }

          }

          return modifier;

          }

//这样是否也可以实现每次清空的效果。函数每次被调用(也就是每次点击) 进去就先清空 然后遍历符合条件的加进modifier 然后再把modifier返回

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师