原帖里LeXRus又提出了新问题: hint=i am lexrus 这样的属性会有问题,不过我感觉不加引号的话,属性值里就不可能有空格,否则会被识别为多个属性了。不过看到最后ncs的回帖我就哭了: onclick=if(document.forms.length>0) 这样的属性怎么办?大于号会被识别为标签结束……还是分离行为与文档吧。补充一下,其实修补一下正则也可以解决,只要改成如下正则即可: /(/s+/w+)/s*=/s*([^"/s]+)(?=[^<>]*>)/ig 就是去掉第二个括号内字符集合里的<>。最后这个问题也解决。 给table加上tbody 来源:通过正则表达式快速在后加上有若干table,但是没有tbody。现在需要用正则批量加上。 匹配table结束标签比较简单,在前面加上一个就行了。但是,匹配table的起始标签有点难度,因为可能有属性。不过之前匹配过链接了,这个也大同小异。 实例table代码如下:
正则: //g 匹配一个就代表标签结束。 之后再replace一下,加上
就可以了。 去掉标签的所有属性来源:正则表达式(Dreamweaver8)
变成没有任何属性的
思路:非捕获匹配属性,捕获匹配标签,使用捕获结果替换掉字符串。正则如下: /()/ 首先,td匹配掉了标签,后面可以用$1引用,后面的若干属性被(?:)匹配掉,而最后匹配的>则可以在后面用$2引用。 示意代码: str = str.replace(reg,’$1$2’); 正则替换特定单词来源:正则表达式,拒绝几个单词的输入该怎样表达? 要求禁止输入某几个单词,如果拒绝red,yellow,white。这个帖子到时不难,但是让我弄清楚了好几个概念。 第一个,小心字符集合里的“或” /[^red|yellow|white]/ 这个正则里的所有或都没有意义,等同于: /[^redyellowwhite]/ 意思就是不能含有以下列出的所有字母。 正解: /red|yellow|white/ 第二个概念: 只要整个正则匹配成功,无论子正则表达式是否匹配成功,括号都会捕捉。例如 /(red)|(yellow)|(white)/ 会捕捉到三个结果,尽管实际上最多只可能有一个括号匹配成功。但是只要有一个匹配到了,两外两个也会记录空串。 指定文字高亮显示来源:如何用正则把网页中的指定的字高亮显示请教正则表达式:如何替换搜索结果中的关键字为高亮显示?不劳而获一次,这个子虚乌有前辈已经给出了非常好的解决方案:我直接把代码贴出来了:
测试高亮的代码。很长很长的代码……………………
删除标签来源:如何使用正则表达式去除大部分HTML标记?删除除了
![]()
、
、
之外所有的标签。子虚乌有给出代码中关键的一句: o.innerHTML.replace(/(<//?(?!br|p|img)[^>//]*)//?>/gi,''); 刚开始没反应过来,后来才想起来,这个正则不用区分起始和结束标签。 <//?(?!br|p|img) 匹配除了保护标签外标签的起始标签或者是结束标签的一部分。 [^>//]* 匹配到>或者/就结束。 //?> 起始标签或者结束标签的结尾。