<!DOCTYPE html>
<html>
<head>
<title>Format Validation</title>
</head>
<body>
<form id="form-example">
<input type="text" id="myInput">
<input type="submit" value="Submit">
</form>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
$('#form-example').submit(function(event) {
event.preventDefault(); // Prevent form submission
// Get the input value
var inputValue = $('#myInput').val();
// Define the regex patterns for the allowed formats
var emailRegex = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
var phoneRegex = /^\d{10}$/;
var dateRegex = /^\d{2}\/\d{2}\/\d{4}$/;
// Check if the input matches any of the defined formats
if (emailRegex.test(inputValue)) {
alert('Valid email format');
} else if (phoneRegex.test(inputValue)) {
alert('Valid phone number format');
} else if (dateRegex.test(inputValue)) {
alert('Valid date format');
} else {
alert('Invalid format');
}
});
});
</script>
</body>
</html>
3条答案
按热度按时间eqqqjvef1#
所以我们有一个正则表达式
/^[\d;]+$|^(\d+)(-)(\d+)$/
。它有两个子模式:第一个匹配数字与';',则2n匹配
<num>-<num>
。所以如果它与第二个匹配,它将包含4个项目:1.整个字符串。2.第一个数字。3.分隔符'-'。4.第二个数字。然后我们检查哪个子模式匹配并相应地处理:niknxzdl2#
要使用jQuery验证多种格式,可以利用正则表达式(regex)来匹配所需的格式。下面是一个如何实现的示例:
e4yzc0pl3#
只使用正则表达式,你不能做数学。
您可以使用3个捕获组更新模式,然后使用parseInt处理x-y场景,并确保y > x
对于x;y; z场景中,您可以在
;
上进行拆分,并检查是否没有重复的值。模式匹配:
^
字符串开始([2-9]|[1-9]\d+)
捕获组1,匹配数字2-9或10+(?:
2个备选方案的非捕获组:-([2-9]|[1-9]\d+)
捕获组2,匹配-
,后跟数字2-9或10+|
或(
捕获组3(?:;(?:[2-9]|[1-9]\d+))+
匹配1+重复;
和数字2-9或10+)
关闭组3)?
关闭非捕获组并将其设为可选$
字符串结束Regex demo