Javascript 正则表达式的第一个单词是星期几
谁能推荐一个正则表达式来测试字符串的第一个单词是否是一周中的某一天 e、 g.“7月16日,星期二” 到目前为止,我有:Javascript 正则表达式的第一个单词是星期几,javascript,regex,Javascript,Regex,谁能推荐一个正则表达式来测试字符串的第一个单词是否是一周中的某一天 e、 g.“7月16日,星期二” 到目前为止,我有: /^((Monday)|(Tuesday)|(Wednesday)|(Thursday)|(Friday)|(Saturday)|(Sunday))/.test("Tuesday, July 16") 这确实有效,有没有办法进一步使用正则表达式将表达式拆分为日和月?尝试以下方法: /^(?i)\W*(?:Mon|Tues|Wednes|Thurs|Fri|Satur|Su
/^((Monday)|(Tuesday)|(Wednesday)|(Thursday)|(Friday)|(Saturday)|(Sunday))/.test("Tuesday, July 16")
这确实有效,有没有办法进一步使用正则表达式将表达式拆分为日和月?尝试以下方法:
/^(?i)\W*(?:Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day\b[\s\S]*$/.test("Tuesday, July 16")
就我个人而言,我想把它分成多个部分。一个用于检查格式,另一个用于检查值中数据的有效性 首先,使用基本正则表达式检查格式:
var input = "Tuesday, July 16";
var pattern = new RegExp("^([a-z]+), ([a-z]+) (\\d{2})$", "i");
var isFormattedCorrectly = pattern.test(input);
然后,如果格式正确,我会将有效的日期和月份值存储在两个数组中,并检查日期片段是否与其中一个值匹配:
var validDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
var validMonths = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var isValidDay = false;
var isValidMonth = false;
if (isFormattedCorrectly ) {
var dateParts = input.match(pattern);
isValidDay = (validDays.indexOf(dateParts[1]) > 0) ? true : false;
isValidMonth = (validMonths.indexOf(dateParts[2] > 0) ? true : false;
}
注意:如果您使用的是JQuery,也可以使用JQuery.inArray()
而不是.indexOf()
虽然它可能不“短而甜”,但我有几个理由建议采用这种方法:
您是否也关心该日期是否为有效日期?+1,因为它起作用。嘿,为什么不使用
而不是[\s\s]
?