我想匹配2位和4位数字。这个RegExp是一个显而易见的选择:
<div className="form_wrapper">
<ReCAPTCHA
sitekey="xxxxxxxxxxx"
render="explicit"
onloadCallback={this.callback}
verifyCallback={this.verifyCallback}
/>
</div>
<NavigationBar
fields={requiredFields}
// disableNext={this.props} (here where i make conditions to disable)
/>
然而,这匹配3位数字。在regexp中有没有办法解决这个问题?
答案 0 :(得分:2)
您可以使用([0-9]{2}){1,2}
:
/\b([0-9]{2}){1,2}\b/
以上正则表达式不一般;这是可能的,因为4 = 2 * 2.
更通用的解决方案是:
/\b[0-9]{2}\b|\b[0-9]{4}\b/
注意:\b
(字边界)用于防止从3位数(或5,6,......数字字符串)中匹配2位数字。
答案 1 :(得分:0)
您可以使用负向lookbehind / lookahead来实现此目的:
这是实现您尝试做的事情的一种可能方式。
/(?<!\d)(\d{2}|\d{4})(?!\d)/
这说 - 找到一个2位或4位数字,前面或后面跟着另一个数字。这与上面的答案的不同之处在于它将匹配所有2位和4位数字,包括那些未被空格包围的数字,例如&#34; 12&#34;在字符串&#34; abc12def&#34;。
您选择哪种方式取决于您所寻找的具体内容。