将特定的正则表达式模式与我的字符串匹配

时间:2015-01-25 07:02:32

标签: javascript regex

您好我希望我的正则表达式模式匹配0-9模式的字符并乘以并添加运算符。到目前为止,这就是我所做的。

var regexPattern = /\d\+\*/;

function matchPattern( regexPattern, mycharacter ) {
    if ( mycharacter.match( regexPattern ) ) {
        console.log( 'true' );
    } else {
        console.log( 'false' );
    }
}

matchPattern( regexPattern, '+' );

问题是,当我将模式传递给数字或“+”或“*”符号时,它会返回false。我做错了什么?

2 个答案:

答案 0 :(得分:0)

更改此行:

var regexPattern = [/\d\+\*/];

对此:

var regexPattern = /[\d\+\*]/;

或者,注意到在+内使用时,您不需要逃避*[]

var regexPattern = /[\d+*]/;

您正在创建一个包含正则表达式的单个元素的数组。你想要的是一个正则表达式,它使用[]作为其模式的一部分。

模式[\d+*]将匹配数字(\d)或加号(+)或星号(*)。

您的修改更新:您拥有的模式/\d\+\*/将匹配一个数字,该数字后面紧跟一个后跟星号的加号。请参阅上文,了解您需要的模式。

答案 1 :(得分:0)

您需要将方括号放在正则表达式中:/[\d\+\*]/这意味着它将匹配方括号中的任何字符。

要匹配多个字符,您需要在结尾设置+*/[\d\+\*]+/告诉它保持匹配任意数量的数字,星号和加号。