正则表达式必须包含字母数字和斜杠

2024-05-02 10:16:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图验证输入字段必须包含字母数字和斜杠作为其值。在

例如:AA/AB/12314/2017/ASD

上面显示的是应该作为输入字段的值的示例。 我对写正则表达式一无所知。所以请帮帮我。在

最后我想到了下面的代码:

var message = $('#message').val();

if (/^[a-zA-Z0-9-/]*$/.test($.trim(message)) == false)
{
    $('#message').focus();
    alert('invalid message');
}

Tags: 代码示例messageifabvar字母数字
3条回答

function checkValidity(input){ var onlyAlphaNum = /^[a-z0-9//]+$/ return onlyAlphaNum.test(input); } var message = $('#message').val(); if(!checkValidity(message)){ $('#message').focus(); alert('invalid message'); }

和13;
和13;

escaping / like \/is a good practise but inside of char class, not necessary.
the * must be changed to +. because * will also match null.
also remove the - otherwise - will also be matched.

function validate(){ var message = $('#message').val(); if (/^[a-zA-Z0-9/]+$/.test($.trim(message)) == false){ $('#message').focus(); alert('invalid message'); } } ; ^{pr2}$ ;

和13;
和13;

it must contain both alphanumeric and slash.

我知道你可能有1个以上的字母数字符号后跟至少1个/,然后是更多的字母数字符号。您需要将regex更改为/^[a-z\d]+(?:\/[a-z\d]+)+$/i

var message = $('#message').val(); if (!/^[a-z\d]+(?:\/[a-z\d]+)+$/i.test($.trim(message))) { $('#message').focus(); alert('invalid message'); } ; ^{pr2}$ ;

和13;
和13;

详细信息

  • ^-字符串的开头
  • [a-z\d]+-1个或多个字母或数字
  • (?:\/[a-z\d]+)+-1个或多个序列
    • \/-斜杠
    • [a-z\d]+-1个或多个字母或数字
  • $-字符串结尾
  • /i-不区分大小写的修饰符,这样[a-z]也可以匹配大写的ASCII字母。在

如果您的意思是字符串内必须有/和字母数字的任何地方,请使用lookaheads:

/^(?=[a-z\d]*\/)(?=\/*[a-z\d])[a-z\d\/]+$/i
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

参见regex demo。在这里,(?=[a-z\d]*\/)在0+个字母数字后面需要一个/,而(?=\/*[a-z\d])需要0+斜杠后的字母数字。[a-z\d\/]+将匹配1个或多个字母数字或斜杠。在

相关问题 更多 >

    编程相关推荐