正则表达式中的尖括号(< or >)是否特殊?

问题描述:

我想要得到一个正则表达式来接受<和>作为我的外部分隔符来获取它们之间的所有内容。正则表达式中的尖括号(< or >)是否特殊?

所以内容像这样

<tfdsfa> 

应该抓住。

难道我必须逃避<和>字符或什么?

正则表达式我的脚本生成的:从文件

/<[^(>)]*>/g 

代码:

data.method.highlight = function() { 
    var x = data.syntax, 
     text = data.$.span.html(); 
    for (var i=0, len = x.length; i < len; i++) { 
     var rx; 
     if (x[i].range) { 
      rx = new RegExp(x[i].tag[0] + "[^(" + x[i].tag[1] + ")]*" + x[i].tag[1], "g"); 
      console.log(rx); 
     } 
     else { 
      var temprx = x[i].tag[0]; 
      for (var z = 1; z < x[i].tag.length; z++) { 
       temprx += "|" + x[i].tag[z]; 
      } 
      rx = new RegExp(temprx, "g"); 
     } 
     text = text.replace(rx,function (match) { 
      console.log("looping - range"); 
      return '<span class="' + x[i].class.default + '">' + match + '</span>'; 
     }); 
     data.$.span.html(text); 
    } 
}; 
+9

你的正则表达式的作品。究竟是什么,你未能实现? – 2012-04-10 19:21:14

+0

任何时候你正在开发正则表达式都可以使用这个工具:http://gskinner.com/RegExr/ – 2012-04-10 19:22:24

+0

你能告诉你如何使用这个表达式吗? – MilkyWayJoe 2012-04-10 19:22:49

无论<也不>是一个正则表达式中的元字符。

这个工作对我来说:

'<foo> and <bar>'.match(/<[^>]*>/g); // ["<foo>", "<bar>"] 
+0

你可以看看我所做的编辑。当我在jsfiddle中运行它时,正则表达式起作用,但不在我的脚本中。任何想法如何发生? – 2012-04-10 19:59:21

+0

@MikeDepies,'console.log(rx)'的输出是什么?更具体地说,您发送给RegExp构造函数的精确字符串是什么,“text”的精确值以及结果与期望值之间的关系? – davin 2012-04-10 20:20:42

+0

将问题解决了出来,这要感谢您询问文本结果的最终结果。文本将 2012-04-10 22:12:15

可能是你有问题,因为你试图插入导致成HTML和浏览器“认为”这是一个无效的HTML标记,像<blablabla>