老师,我的文本替换,输出原字符串
来源:3-43 利用replace方法完善正则测试工具
慕移动0023355
2019-06-02 22:00:43
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> #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 .textfield{ width: 215px; padding: 5px; border: 1px solid #ccc; } #regexp .readonly{ background-color: #eee; } </style> </head> <body> <div id="regexp"> <h1 class="title">正则表达式测试工具</h1> <textarea id="userText" class="textbox" placeholder="在此输入带匹配的文本"></textarea> <p> 正则表达式:<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" value="测试匹配" id="matchingBtn"/> </p> 匹配结果: <div id="matchingResult" class="textbox readonly" placeholder="在此输入等待匹配的文本" disabled="disabled"></div> <p> 文本替换:<input type="text" id="userReplaceText" class="textfield" placeholder="在此输入正则表达式"/> <input type="button" value="替换按钮" id="replaceBtn"/> </p> 匹配结果: <div id="replaceResult" class="textbox readonly" placeholder="在此输入等待匹配的文本" disabled="disabled"></div> </div> <script> var wrapElem = document.querySelector('#regexp'); var regexpElem = { userText : wrapElem.querySelector('#userText'), userRegExp : wrapElem.querySelector('#userRegExp'), userModifier : document.getElementsByName("userModifier"), matchingBtn : wrapElem.querySelector("#matchingBtn"), matchResult : wrapElem.querySelector("#matchingResult"), userReplaceText :wrapElem.querySelector("#userReplaceText"), replaceBtn :wrapElem.querySelector("#replaceBtn"), replaceResult:wrapElem.querySelector("#replaceResult") }; var pattern, modifier =''; for (var i=0 ;i <regexpElem.userModifier.length;i++){ regexpElem.userModifier[i].onclick = function () { modifier = '';//为了防止每点击一次就会累加一遍 for(var j=0;j<regexpElem.userModifier.length;j++){ if (regexpElem.userModifier[j].checked) { modifier+= regexpElem.userModifier[j].value; } } } } regexpElem.matchingBtn.onclick = function () { if(!regexpElem.userText.value) { alert('请输入带匹配的文本!'); regexpElem.userText.focus(); return; } if(!regexpElem.userRegExp.value){ alert('请输入正则表达式!'); regexpElem.userRegExp.focus(); return; } pattern = new RegExp('('+regexpElem.userRegExp.value+')',modifier); regexpElem.matchResult.innerHTML= pattern.exec(regexpElem.userText.value)?regexpElem.userText.value.replace(pattern,'<span style="background-color:yellow;">$1<span>'):'(没有匹配)'; } regexpElem.replaceBtn.onclick = function () { if(!regexpElem.userText.value) { alert('请输入带匹配的文本!'); regexpElem.userText.focus(); return; } if(!regexpElem.userReplaceText.value){ alert('请输入要替换的文本'); regexpElem.userReplaceText.focus(); return; } pattern = new RegExp(regexpElem.userReplaceText.value); regexpElem.replaceResult.innerHTML= regexpElem.userText.value.replace(pattern,'<span style="color:red;">'+ regexpElem.userReplaceText.value+'<span>'); } </script> </body> </html>
1回答
好帮手慕码
2019-06-03
同学你好!
关于代码中替换的问题:这里的pattern声明错了
如果帮到了你 欢迎采纳 祝学习愉快~
相似问题
回答 2
回答 2