js 正则表达式问题 求大神求大神 快来啊 急!!!!!

caofengzhan 2014-10-28 01:40:38
写了一个正则表达式 在正则表达式的工具里 可以正确使用
表达式内容是(?<!\"[^>]*)(学生)(?!\"|</a>) 但是在js 用的时候
var patt1 = new RegExp("(?<!\"[^>]*)(学生)(?!\"|</a>)"); 提示不是正确的正则表达式
var reg = "(?<!\"[^>]*)(学生)(?!\"|</a>)"; 这样直接不能用 求大神指点
...全文
212 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
caofengzhan 2014-11-06
  • 打赏
  • 举报
回复
引用 13 楼 xzy21com 的回复:
var html = '如果是有学生<a href="#" title="学生" >asdasdasdasd学生asdadasdasdasdasd</a>学生';
var a = html.replace(/(?!<[^>]*)(学生)(?![^<]*>)/gi,"<a href='#'>$1</a>>");
alert(a);
我用了你的方法 不错 谢了 大神
caofengzhan 2014-10-30
  • 打赏
  • 举报
回复
不过还是要谢谢各位大神
caofengzhan 2014-10-30
  • 打赏
  • 举报
回复
我自己解决了 领导改了需求
scscms太阳光 2014-10-29
  • 打赏
  • 举报
回复
var html = '如果是有学生<a href="#" title="学生" >asdasdasdasd学生asdadasdasdasdasd</a>学生';
var a = html.replace(/(?!<[^>]*)(学生)(?![^<]*>)/gi,"<a href='#'>$1</a>>");
alert(a);
Go 旅城通票 2014-10-28
  • 打赏
  • 举报
回复
正则比较难,用dom容易一些。。
<div><a href="#" title="学生" >asdasdasdasd<b>学生</b>asdadasdasdasdasd</a></div>
<div>学生啊</div>
<script>
    function parentsNotA(o) { do { if (o.tagName == 'A') return false; } while (o = o.parentNode); return true }
    window.onload = function () {
        var range, keyword = '学生'
        if (document.createRange) range = document.createRange();
        else range = document.body.createTextRange();
        if (range.findText) {//ie
            while (range.findText(keyword)) {
                if (parentsNotA(range.parentElement())) range.pasteHTML('<a href="#">' + keyword + '</a>');
                else range.move('character', keyword.length)
            }
        } else if (window.find) {//标准浏览器
            var s, n;
            s = window.getSelection();
            while (window.find(keyword)) {
                if (parentsNotA(s.focusNode)) {
                    var a = document.createElement("a");
                    a.href = '#';
                    s.getRangeAt(0).surroundContents(a);
                }
            }
            s.removeAllRanges()
        }
        alert(document.body.innerHTML)
    }
</script>
caofengzhan 2014-10-28
  • 打赏
  • 举报
回复
我肯定会结帖的 求指点啊
caofengzhan 2014-10-28
  • 打赏
  • 举报
回复
引用 9 楼 slwsss 的回复:
document.body.innerHTML=document.body.innerHTML.replace(/(学生)/ig,'<a href="#">$1</a>')
这样不行啊 如果是有<a href="#" title="学生" >asdasdasdasd学生asdadasdasdasdasd</a> 这种情况存在的话 就变成这样了 <a href="#" title="<a href="#">$1</a>" >asdasdasdasd学生asdadasdasdasdasd</a>
slwsss 2014-10-28
  • 打赏
  • 举报
回复
document.body.innerHTML=document.body.innerHTML.replace(/(学生)/ig,'<a href="#">$1</a>')
caofengzhan 2014-10-28
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
js不支持正、负向后瞻
我想要把body 下所有的标签 中有学生这个关键字的 替换成a标签内容学生 该怎么做 求指点
似梦飞花 2014-10-28
  • 打赏
  • 举报
回复
?<! js不支持逆序环视的
caofengzhan 2014-10-28
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
js不支持正、负向后瞻
我想要把body 下所有的标签内容 中有学生这个关键字的 替换成标签的类型 该怎么做 求指点
caofengzhan 2014-10-28
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
var reg = /正则表达式/;// 不知你做什么用的?
我想要把body 下所有的标签内容 中有学生这个关键字的 替换成标签的类型 该怎么做 求指点
caofengzhan 2014-10-28
  • 打赏
  • 举报
回复
引用 楼主 caofengzhan 的回复:
写了一个正则表达式 在正则表达式的工具里 可以正确使用 表达式内容是(?<!\"[^>]*)(学生)(?!\"|</a>) 但是在js 用的时候 var patt1 = new RegExp("(?<!\"[^>]*)(学生)(?!\"|</a>)"); 提示不是正确的正则表达式 var reg = "(?<!\"[^>]*)(学生)(?!\"|</a>)"; 这样直接不能用 求大神指点
我想要把body 下所有的标签内容 中有学生这个关键字的 替换成标签的类型 该怎么做 求指点
闪闪放光芒 2014-10-28
  • 打赏
  • 举报
回复
你这个逆序环视js是不支持的php可以支持。
Go 旅城通票 2014-10-28
  • 打赏
  • 举报
回复
js不支持正、负向后瞻
slwsss 2014-10-28
  • 打赏
  • 举报
回复
var reg = /正则表达式/;// 不知你做什么用的?

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧