我试图找到一种在if语句中使用通配符的方法。所以我有这样的价值:07/22/2012(日期)然后我想要它做:
if (date = "07/" *) { alert("test"); };
它必须也只能在07之后使用通配符,因为它可以具有:06/07/2012
任何建议,谢谢西蒙。如果有人知道更简单的方法,我也可以使用jquery。
答案 0 :(得分:3)
您可以使用substring
函数检查字符串的特定部分:
if (date.substring(0, 3) === "07/") { alert("test"); };
那就是说,我同意你的用例可能会有更大的问题。如果您正在尝试验证日期,那么您应该使用日期函数而不是尝试验证字符串。
答案 1 :(得分:0)
if (date.substr(0, 3) == "07/")
检查字符串是否以该序列开头。在非常现代的JS引擎中,您也可以使用date.startsWith("07/")
(同样是shim it)。
对于更复杂的匹配,您可能希望使用正则表达式。 “startswith”看起来像这样:
/^07\//.test(date)
答案 2 :(得分:0)
如果您需要将字符串与特定模式匹配,则应使用regular expressions。
如果您想测试字符串以某个子字符串开头,您可以使用RegExp,例如:
/^07\//
/
在开头和结尾分隔正则表达式文字^
匹配字符串的开头,它可以防止模式在日期内匹配,例如'06/07/08'
07
匹配字符串'07'
\/
匹配/
字符,\
字符用作转义符,因此正则表达式不会被关闭,类似于字符串中的引号需要如何已转发\
(例如"\""
)。签入if
语句的方法是使用test
方法:
if (/^07\//.test(yourDate)) {
...do stuff...
}
这是模式匹配字符串的所有独角兽和彩虹,但是如果您正在使用日期很多,那么您应该将日期解析为Date
对象并通过对象进行管理,而不是试图执行复杂的模式匹配。
答案 3 :(得分:0)