Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止2个连续数正则表达式_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 防止2个连续数正则表达式

Javascript 防止2个连续数正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我试图验证JavaScript中的文本输入,以防止出现两个连续的数字。 例: 名称2aaa接受 名称22AA不接受 我正在对文本输入进行验证。这就是我的代码,它已经包含了prevent@sign,我想把prevent 2 continued number规则添加到同一个正则表达式中 $('#storename').on('input', function () { var c = this.selectionStart, r = /[\\\@@]/g,

我试图验证JavaScript中的文本输入,以防止出现两个连续的数字。 例:

名称2aaa接受

名称22AA不接受

我正在对文本输入进行验证。这就是我的代码,它已经包含了prevent@sign,我想把prevent 2 continued number规则添加到同一个正则表达式中

 $('#storename').on('input', function () {
    var c = this.selectionStart,
        r = /[\\\@@]/g,
        v = $(this).val();
    if (r.test(v)) {
        $(this).val(v.replace(r, ''));
        c--;
    }
    this.setSelectionRange(c, c);
});

这可能是您需要的:

正则表达式
  • [\\@]
    \
    @
  • |
    :或
  • (\d)\d+
    :前面有一个或多个数字的数字,请将第一个数字放在第1组中
替代 假设您不希望用户键入另一个数字,前提是前面已经有一个数字

当用户尝试键入
42
时,它将
4
存储在组中,并用该组替换所有数字。在这种情况下,
42
->
4
。因此,用户在一行中键入的数字不能超过1位

$('storename')。在('input',function(){
var c=this.selectionStart,
r=/[\\@]|(\d)\d+/g,
v=$(this.val();
if(r.试验(v)){
$(this.val)(v.replace(r,$1');
c--;
}
此。设置选择范围(c,c);
});


使用
/\d{2}/
并在匹配时返回failure谢谢。很好用。如果我想保留这条规则,但只使用4个数字而不是2,请回答另一个问题我需要什么样的更改集?@rawanmansour,这将是
[\\@]|(\d{3})\d+
[\\@]|(\d)\d+
$1