老师 问个问题
<!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添加事件?
这样做的好处是什么
正在回答
同学你好,问题解答如下:
1、勾选选项的判定放到检测按钮点击事件里是可以,也能够实现效果。老师可能只是为了将功能区分开,所以单独写了。
2、同学下面粘贴的封装代码是没有问题的,可以达到每次调用函数时(点击事件触发) 清空modifier,很棒!
3、modifier为局部变量,会被清除的。
祝学习愉快!
function mod () {
var modifier='';
for(var i =0;i<userModifier.length;i++){
if (userModifier[i].checked==true){
modifier+=userModifier[i].value;
}
}
return modifier;
}
这样可以达成每次调用函数时(点击事件触发) 清空modifier吗?
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 星