正则表达式的[ ]疑问

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml&...;>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>无标题文档</title>

<script>

window.onload = function(){

var aT = document.getElementsByTagName('textarea');

var oInput = document.getElementById('input1');



//var re = /<\w+>/g;

var re=/<[\/\w]+>/g//问题1:原先想的这样的写法去除/过滤标签

    var re=/<[/。\w]+>/g//但是发现这样乱写转义字符也行?



//var re = /<[^>]+>/g;

//var re=/<[\w\W]+>/g//问题二:此处的写法和下面一样的写法应该是等价的吧?为什么效果不一样?

      var re=/<[\.]+>/g

oInput.onclick = function(){

    

    aT[1].value = aT[0].value.replace(re,'');

    

};


};

</script>

</head>

<body>

替换前

<textarea>

</textarea>

替换后

<textarea>

</textarea>

<input type="button" value="确定" id="input1" />

</body>

</html>

阅读 2.3k
3 个回答

直接说出你的需求.

[] 方括号里面的字符是表示就这些字符有效.

大哥(小妹)你写完问题不先预览下看下排版的么?

过滤用户输入的HTML标签


const reg = /<\/?[^>]+>/g

/ /* 正则开始 */
< /* 匹配左尖括号 */
\/? /* 匹配 '/'(可能有,可能没有) */
[^>]+ /* 匹配任意不是 '>'的字符,出现一次或多次 */
> /* 匹配右尖括号 */
/ /* 正则结束 */

至于你说的乱写转义符, []中的内容只需要出现其中一个就可以了,也就是说只要 \w匹配到了,你其他乱写的都没用了。

[\w\W] 我怎么觉得这是匹配一切。

[.] 我就假设你这用的是 . 不是 \..匹配除换行符以外的一切字符,区别就在一个换行符。

我正则也忘得差不多了,刚刚复习了下。给你个链接,可以仔细看看。

完全看不懂在说什么

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题