javascript - 必须使用 JS 验证带有连字符的月份

标签 javascript jquery html

需要使用连字符来验证月份,例如 JAN-FEB、FEB-MAR... 同样。这里我遵循了代码,

function myFunction() {
  var patt=/^((["JAN"]+)|(["FEB"]+))$/
  text = document.getElementById("p01").innerHTML;
  document.getElementById("demo").innerHTML = patt.test(text);
}
<p id="p01">JAN-FEB</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>

一旦我验证了这一点,我就会得到错误的结果,但我希望这是真的。它必须仅通过以大写字母开头的 3 个字母的月份名称进行验证,例如 JAN-FEB、JAN-DEC、FEB-JUN,...同样适用于所有类型的月份。

最佳答案

您可以使用正则表达式从 p 获取月份名称标记并检查 months 中存在的每个月使用 array#every 的数组.

var myFunction = function() {
  var months = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'],
  text = document.getElementById("p01").innerHTML;
  var match = text.match(/(\w+){3}-(\w+){3}/g);
  document.getElementById("demo").innerHTML = match ? match[0].split('-').every(month => months.includes(month)) : false;
}
<p id="p01">JAN-FEB</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>

关于javascript - 必须使用 JS 验证带有连字符的月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47807442/

相关文章:

jquery - 滚动时导航变小

javascript - RSelenium 单选按钮不可点击

html - float 不清除

jquery - 可点击的 block 指针

javascript - 寻血猎犬重置本地数据

javascript - 使用一个 jquery 代码关闭多个模式

javascript - 为什么我的 cipher.final 因 key 不正确而失败?

jQuery 根据值调用函数?

javascript - 在jquery数据表服务器端分页中指定页面大小

javascript - 自定义光标不适用于超链接