REGEX - 必须包含字母数字和斜杠

时间:2017-03-03 11:40:07

标签: javascript jquery regex

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

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

以上显示的是应该是输入字段的值的示例。 我对编写正则表达式没有任何了解。所以请帮帮我。

最后我提出了以下代码:

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

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

3 个答案:

答案 0 :(得分:4)

  

它必须包含字母数字和斜杠。

据我所知,您可能有1个以上的字母数字符号,后跟至少1个/,后跟更多的字母数字符号。您需要将正则表达式更改为/^[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');
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="message" value="ASD/TD"/>
&#13;
&#13;
&#13;

<强>详情:

  • ^ - 字符串开头
  • [a-z\d]+ - 一个或多个字母或数字
  • (?:\/[a-z\d]+)+ - 1个或多个序列
    • \/ - 斜杠
    • [a-z\d]+ - 一个或多个字母或数字
  • $ - 字符串结尾
  • /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个或多个字母数字或斜杠。

答案 1 :(得分:1)

  

/一样转义\/是一种很好的做法,但在char类中,不是必需的。
  *必须更改为+。因为*也会匹配null   同时删除-,否则-也将匹配。

function validate(){
  var message = $('#message').val();

  if (/^[a-zA-Z0-9/]+$/.test($.trim(message)) == false){
      $('#message').focus();
     alert('invalid message');
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="message"></textarea><button onclick="validate();">Test</button>

答案 2 :(得分:0)

&#13;
&#13;
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;
&#13;