您好我希望我的正则表达式模式匹配0-9模式的字符并乘以并添加运算符。到目前为止,这就是我所做的。
var regexPattern = /\d\+\*/;
function matchPattern( regexPattern, mycharacter ) {
if ( mycharacter.match( regexPattern ) ) {
console.log( 'true' );
} else {
console.log( 'false' );
}
}
matchPattern( regexPattern, '+' );
问题是,当我将模式传递给数字或“+”或“*”符号时,它会返回false。我做错了什么?
答案 0 :(得分:0)
更改此行:
var regexPattern = [/\d\+\*/];
对此:
var regexPattern = /[\d\+\*]/;
或者,注意到在+
内使用时,您不需要逃避*
或[]
:
var regexPattern = /[\d+*]/;
您正在创建一个包含正则表达式的单个元素的数组。你想要的是一个正则表达式,它使用[]
作为其模式的一部分。
模式[\d+*]
将匹配数字(\d
)或加号(+
)或星号(*
)。
您的修改更新:您拥有的模式/\d\+\*/
将匹配一个数字,该数字后面紧跟一个后跟星号的加号。请参阅上文,了解您需要的模式。
答案 1 :(得分:0)
您需要将方括号放在正则表达式中:/[\d\+\*]/
这意味着它将匹配方括号中的任何字符。
要匹配多个字符,您需要在结尾设置+
或*
:/[\d\+\*]+/
告诉它保持匹配任意数量的数字,星号和加号。