使用正则表达式在括号内选择内容

时间:2012-06-06 00:47:12

标签: javascript regex

我试图提醒括号内的数字:

var str2 = "This is a string (3444343) with numbers.";
var patt2 = \((.*?)\);
alert(str2.match(patt2));

jsfiddle:http://jsfiddle.net/BinaryAcid/8nx9v/1/

3 个答案:

答案 0 :(得分:8)

解决方案

根据您的原始问题,这样做:

var str2 = "This is a string (3444343) with numbers.";
var patt2 = /\((.*?)\)/;

alert(str2.match(patt2)[1]);

更新的jsFiddle示例:http://jsfiddle.net/S99jd/

对于您的输入字符串,它会警告3444343(不带括号)。

一些解释

您的代码片段需要:

  • 添加正斜杠/以创建正则表达式
  • 通过选择正确的匹配组(此处,在索引1处进行警报,因为match()返回元素数组,其中索引0处的元素是完全匹配且跟随索引对应于匹配组)。

有关在JavaScript / ECMAScript中使用正则表达式的更多信息和帮助,请访问:http://www.regular-expressions.info/javascript.html

答案 1 :(得分:2)

您需要使用正斜杠包含正则表达式文字:

var patt2 = /\((.*?)\)/;

Here's the updated jsFiddle.

答案 2 :(得分:-1)

正如其他人所说,如果你使用斜杠创建正则表达式会更好,但是如果你想知道如何修复你的方法:

var patt2 = '(\\(\\d+\\))';

var patt2 = '([(]\\d+[)])';