簡體   English   中英

在String結尾處使用通配符

[英]Using a Wildcard at end of String

我試圖找到一種方法在if語句中使用通配符。 所以我有這樣的價值:07/22/2012(日期)然后我想要它做:

if (date = "07/" *) { alert("test"); };

它必須也只能在07之后使用通配符,因為它可以具有:06/07/2012

任何建議,謝謝西蒙。 如果有人知道更簡單的方法,我也可以使用jquery。

您可以使用substring函數來檢查字符串的特定部分:

if (date.substring(0, 3) === "07/") { alert("test"); };

也就是說,我同意您的用例可能存在更大的問題。 如果您嘗試驗證日期,那么您應該使用日期函數而不是嘗試驗證字符串。

使用substring / substr

if (date.substr(0, 3) == "07/")

檢查字符串是否以該序列開頭。 在非常現代的JS引擎中,你也可以使用date.startsWith("07/") (當你修改它時 )。

對於更復雜的匹配,您可能希望使用正則表達式。 “startswith”看起來像這樣:

/^07\//.test(date)

如果需要將字符串與特定模式匹配,則應使用正則表達式

如果要測試字符串以某個子字符串開頭,則使用RegExp,例如:

/^07\//
  • /在開頭和結尾分隔正則表達式文字
  • ^匹配字符串的開頭,它可以防止模式在日期內匹配,例如'06/07/08'
  • 07匹配字符串'07'
  • \\/匹配一個/字符, \\字符用作轉義符,以便正則表達式不會關閉,類似於字符串中的引號需要用\\ (ex "\\"" )轉義。

檢查if語句的方法是使用test方法:

if (/^07\//.test(yourDate)) {
    ...do stuff...
}

這是模式匹配字符串的所有獨角獸和彩虹,但是如果您正在使用日期很多,則應該將日期解析為Date對象並通過對象進行管理,而不是嘗試執行復雜的模式匹配。

如果您嘗試操作日期,我可以建議您使用像moment.js這樣的庫。

例如,檢查日期的月份是否為7月:

// month starts at 0 so July => 6
var month = 6;
var d = moment("07/22/2012", "MM-DD-YYYY");

if( d.month() === month ) alert("test");

這里的例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM