老师帮忙看下哪里出错了

老师帮忙看下哪里出错了

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8" /> 
<title>正则表达式测试工具</title>
<style type="text/css">
*{box-sizing: border-box;}
#regExp{width: 650px; margin: 100px auto; font-size: 14px;}
#regExp .title{color: #777; font-size: 24px; text-align: center;}
#regExp .textBox{width: 650px; height: 150px; border: 1px solid #ccc; border-radius: 5px; padding: 5px; resize: none;}
#regExp .textfield{width: 225px; padding: 5px; border: 1px solid #ccc;}
.readOnly{background-color: #eee;}
</style>
</head> 
<body> 
<div id="regExp">
<h1 class="title">正则表达式测试工具</h1>
<textarea id="userText" class="textBox" rows="10" cols="30" placeholder="在此输入待匹配的文本"></textarea>
<p>
<span>正则表达式</span>
<input type="text" id="userRegExp" class="textfield" 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" id="matchBtn" value="测试匹配"/>
</p>
<h4>匹配结果:</h4>
<div id="matchingResult" class="textBox readOnly" rows="10" cols="30"></div>
<p>
<span>替换文本</span>
<input type="text" id="userReplaceText" class="textfield" placeholder="在此输入替换文本"/>
<input type="button" id="replaceBtn" value="替换文本"/>
</p>
<h4>匹配结果:</h4>

<div id="replaceResult" class="textBox readOnly" rows="10" cols="30"></div>
</div>
<script type="text/javascript">
var userText = document.getElementById("userText"),
matchBtn = document.getElementById("matchBtn"),
userMod = document.getElementsByName("userModifier"),
replaceBtn = document.getElementById("replaceBtn"),
userRegExp = document.getElementById("userRegExp"),
matchingResult = document.getElementById("matchingResult"),
userReplaceText = document.getElementById("userReplaceText"),
replaceResult = document.getElementById("replaceResult"),
mod = "",
pattern;
for (var i = 0; i < userMod.length; i++) {
console.log(userMod)
userMod[i].onclick = function(){
mod="";
for (var j = 0; j < userMod.length; j++) {
if (userMod[j].ckecked) {
mod+= userMod[j].value;
}
}
}
}
matchBtn.onclick = function(){
pattern = new RegExp("("+userRegExp.value+")", mod);
matchingResult.innerHTML = pattern.exec(userText.value)?userText.value.replace(pattern, '<span style="background-color: yellow;">$1</span>'):("没有匹配")
}
// replaceBtn.onclick = function(){
//  pattern = new RegExp("("+userRegExp.value+")", mod);
//  matchingResult.innerHTML = pattern.exec(userText.value)?userText.value.replace(pattern, '<span style="background-color: yellow;">$1</span>'):("没有匹配")
// }
</script>
</body> 
</html>

修饰符点了没用,哪里出了问题???? 只会匹配第一个单词,自己找了好久没找出来

正在回答

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

3回答

同学你好!

抱歉昨天老师这边测得不是很全面。今天仔细看了一下问题应该是这里:checke单词拼写错误。

http://img1.sycdn.imooc.com//climg/5ce74ee70001875006220193.jpg

http://img1.sycdn.imooc.com//climg/5ce74f2d00018f3d07530360.jpg

如果帮助到了你 欢迎采纳 祝学习愉快~


  • 浅寒暮雪 提问者 #1
    checked单词拼错了??? 然后选了全局匹配的话为什么要加上量词呢?那这样后面的选框根本没用啊?? 我的问题就出在后面的复选框无效啊!
    2019-05-24 10:03:23
  • 浅寒暮雪 提问者 #2
    找到原因了 是checked拼写错误……改过来就OK了
    2019-05-24 12:37:38
提问者 浅寒暮雪 2019-05-23 20:57:46

我这边为什么不可以呢???http://img1.sycdn.imooc.com//climg/5ce698c400017fbc13050865.jpg

好帮手慕码 2019-05-23 20:14:52

同学你好!
经过测试是可以的呀~

这里只匹配一次

http://img1.sycdn.imooc.com//climg/5ce68e4c0001fc3307180350.jpg

当选择了全局匹配之后,可以匹配到多个单词

http://img1.sycdn.imooc.com//climg/5ce68ea500018fc910380421.jpg

同学可以再测试一下~

如果帮助到了你 欢迎采纳 祝学习愉快~

  • 提问者 浅寒暮雪 #1
    啊?为什么我这边测试无效果呢????!!!!让我纠结了半天
    2019-05-23 20:49:19
  • 好帮手慕码 回复 提问者 浅寒暮雪 #2
    同学勾选了全局匹配之后可以了吗? 祝学习愉快~
    2019-05-23 20:51:19
  • 提问者 浅寒暮雪 回复 好帮手慕码 #3
    我这边不行诶 怎么回事儿 看上面的图??? 代码是我复制过来的啊
    2019-05-23 20:58:42
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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