使用正则表达式获取字符串的第一个对应项

时间:2014-02-04 17:00:47

标签: javascript regex

我有一个javascript代码,我想获得一个特定的功能。我的代码运行良好,但我有一个问题,如何获得字符串的第一个相应的。在我的例子中它是'false',这里是javascript代码:'代码不是100%正确,只是一个例子。'

$(document).ready(function() {
        $('#flash').insertAfter($('.report-header'));
        $('a.bounce-tip').tooltipster({interactive: true, position: 'top', trigger: 'click'});
        $('#add-manual-rejection').dialog({
            autoOpen: false,
            resizable: false,
            width: 400,
            modal: true
        });

        $('#add-blacklist-show').click(function() {
            $('#add-manual-rejection').find('input[name=address], input[name=comment]').val('');
            $('#add-manual-rejection').dialog('open');
            return false;
        });

        $('#cancel-add-rejection').click(function() {
            $('#add-blacklist-show').click(function() {
                $('#add-manual-rejection').find('input[name=address], input[name=comment]').val('');
                 $('#add-manual-rejection').dialog('open');
                return false;
               });
          return false;
       });
    });

现在我的正则表达式是:

/([\(\'\$\#]+add-b[\w\W]+false)/

我还尝试使用{1,2等等......}来获得第一个结果。所以它变成了这样:

([\(\'\$\#]+add-b[\w\W]+false{1})

但是在这种情况下,解释器仅为最后一个字母提供结果,而'e'不是整个单词。

我正在使用此网站来匹配我的正则表达式:http://rubular.com/

任何建议!谢谢:))

2 个答案:

答案 0 :(得分:2)

我不清楚你想要什么回来。如果你要返回的是你发布的代码中的第一个子字符串,它以一组中的一个字符开头('$#后跟add-b并以false结尾,你需要make [\ w \ W] +'非贪心'。所以你的正则表达式是:

[('$#]+add-b[\w\W]+?false

我看到你编辑了你的标签以显示javascript而不是nsregularexpressions。上面的代码示例可能如下所示:

var myregexp = /[('$#]+add-b[\w\W]+?false/;
var match = myregexp.exec(subject);
if (match != null) {
    result = match[0];
} else {
    result = "";
}

答案 1 :(得分:1)

/(\$\('#add-b(?:(?!}\);)[\s\S])+}\);)/
# http://rubular.com/r/7DzzH82kiH
# Match 1
# 1. $('#add-blacklist-show').click(function() {
# $('#add-manual-rejection').find('input[name=address], input[name=comment]').val('');
# $('#add-manual-rejection').dialog('open');
# return false;
# });
# Match 2
# 1. $('#add-blacklist-show').click(function() {
# $('#add-manual-rejection').find('input[name=address], input[name=comment]').val('');
# $('#add-manual-rejection').dialog('open');
# return false;
# });

http://rubular.com/r/7DzzH82kiH

regex matches each instance of code block within string