我希望正则表达式只允许除某些数字之外的数字
示例:限制101 - 109.允许所有其他
尝试
var regex = new RegExp(/^([0-9]+|[^10[1-9]]| [^0])$/);
regex.test(101) // should give false
regex.test(109) // should give false
regex.test(0) // should give false
任何其他值都应该为真
regex.test(100001) // should give true
这不起作用
答案 0 :(得分:2)
您可以使用基于正向的负向前导来禁用某些数字,同时匹配所有数字:
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.fragment_playlist_synch, menu);
}
public void onPrepareOptionsMenu(Menu menu){
ImageView syncView = (ImageView) MenuItemCompat.getActionView( menu.findItem(R.id.menu_item_sync));
Animation rotate = AnimationUtils.loadAnimation(getContext(), R.anim.rotate);
rotate.setRepeatCount(Animation.INFINITE);
if(animate)
syncView.startAnimation(rotate);
else
//here the animation would always be null because a new sync menuitem is created in onCreateOptionsMenu without clearing the last one
syncView.clearAnimation();
}
/^(?!(0|10[1-9])$)\d+$/
拒绝(?!(0|10[1-9])$)
,以及来自0
的所有数字都是否定前瞻。
答案 1 :(得分:1)
试试这个:
!/^0|10[1-9]$/.test(101)
function check_number(n){
return !/^0|10[1-9]$/.test(n);
}
document.write('101 : ' + check_number(101) + '<br>');
document.write('109 : ' + check_number(109) + '<br>');
document.write('0 : ' + check_number(0) + '<br>');
document.write('100001 : ' + check_number(100001) + '<br>');
答案 2 :(得分:0)
示例:这会将其限制为 238 - 971
这只是表明它不是那么难的限制,
它产生一个数字范围的正则表达式
适合您的好工具是here。
^(?!0*(?:23[8-9]|2[4-9]\d|[3-8]\d{2}|9[0-6]\d|97[0-1])$)\d+$
扩展
^
(?!
0*
(?:
23 [8-9]
| 2 [4-9] \d
| [3-8] \d{2}
| 9 [0-6] \d
| 97 [0-1]
)
$
)
\d+
$