Javascript匹配字符串中的括号

时间:2010-07-06 22:07:37

标签: javascript jquery

如何对字符串中带圆括号的字符串执行.match操作? String1.match(“我如何匹配(MATCH ME)”);


没有一个答案能让我得到我想要的东西。我可能只是做错了。我试图让我的问题变得基本,我认为这样做会让我的问题出错。这是我要修复的声明:

$('[id$=txtEntry3]').focus(function () {

    if (!DropdownList.toString().match($('[id$=txtEntry2]').val()) || $('[id$=txtEntry2]').val().length < 5) {
        $('[id$=txtEntry2]').select();

        ErrorMessageIn("The Ingredient number you entered is not valid.");
        return;
    }
    ErrorMessageOut();
});

这正确地解决了我遇到的问题,当它试图匹配“txtEntry2”中包含“()”的条目时。



嗯,它有点破碎,但它适用于我需要它做的事情。这就是我为解决问题所做的工作:

$('[id$=txtEntry3]').focus(function () {

        if (!StripParentheses(DropdownList).match(StripParentheses($('[id$=txtEntry2]').val())) || $('[id$=txtEntry2]').val().length < 5) {
            $('[id$=txtEntry2]').select();
            if (!$('[id$=txtEntry2]').val() == "") {
                ErrorMessageIn("The Ingredient number you entered is not valid.");
            }
            return;
        }
        ErrorMessageOut();
    });

function StripParentheses(String){
    x = String.toString().replace(/\(/g, '');
    x = x.toString().replace(/\)/g, '');
    return x;
}

4 个答案:

答案 0 :(得分:3)

var str = "How do I match this (MATCH ME)";
str.match(/\((.*?)\)/);

答案 1 :(得分:3)

以获取所有出现的内容,例如: “..(匹配我)..(也匹配我)..”添加g正则表达式标志

string.match(/\((.*?)\)/g)

这也是一个优点,你只能获得所有出现的列表。如果没有此标志,结果将包括整个正则表达式模式匹配(作为结果数组的第一项)

答案 2 :(得分:2)

如果您对括号内的字符串部分感兴趣,那么您可以使用/\(([^\)]*)\)/;如果您只需要获取完整的字符串,那么您可以使用/\([^\)]*\)/

答案 3 :(得分:1)

使用转义字符 - 请参阅此处:http://www.javascriptkit.com/jsref/regexp.shtml