2017-01-24 47 views
-3

在这种情况下使用[]和()的区别是什么?Javascript正则表达式

var str = "Hel?lo the?re , Woul?d you like some ice?cream?"; 
 
var rExp = /[?+]/ig; 
 
var rExp2 = /(\?+)/ig; 
 

 
console.log(str.replace(rExp, "")); 
 
console.log(str.replace(rExp2, ""));

可我还得到时使用的其他

+1

字符类和捕获组 –

+0

第二个匹配'赫尔???? lo',第一个不 – Toto

+1

'[?+]'一个单个字符相匹配,' ?'或'+'。 '(\?+)'匹配1个或多个'?'符号。选择你需要的任何acc。满足您的需求。 –

回答

0

你可以用含有+以及字符串检查两个正则表达式的解释。

第一个正则表达式[?+]/ig从字面上寻找字符类[]?+

+不能用作charcter类中的量词。

量词必须放在字符类[?]+之后,该字符类不会出现一个或多个问号。

第二个正则表达式使用带有单个转义字符?和量词+的组构造()

这两个正则表达式对不敏感的i和全局g共享相同的标志。

var str = "Hel?lo t+he?re , Wo+ul?d you like some ice?cre+am?"; 
 
var rExp = /[?+]/ig; 
 
var rExp2 = /(\?+)/ig; 
 

 
console.log(str.replace(rExp, "")); 
 
console.log(str.replace(rExp2, ""));