所以当我遇到这些代码时,我正在研究如何使用Google Chrome扩展程序显示桌面通知:
var time = /(..)(:..)/(Date()); // The prettyprinted time.
var hour = time[1] % 12 || 12; // The prettyprinted hour.
var period = time[1] < 12 ? 'a.m.' : 'p.m.'; // The period of the day.
这有什么作用呢?
答案 0 :(得分:9)
引人入胜,我以前没见过:
/regex/(...);
编辑 :see this!
此:
/(..)(:..)/(Date());
// seems to emulate the functionality of exec()
将返回正则表达式/(..)(:..)/
的匹配(匹配组的数组)与字符串(Date()
):
"Thu Jul 08 2010 09:40:38 GMT+0200 (W. Europe Daylight Time)"
(或任何时候)
在这种情况下,返回的数组(匹配)是:
["09:40", "09", ":40"]
这一行:
var hour = time[1] % 12 || 12;
......只是确定小时。如果小时为 falsey (即0
),则默认为12
- 这使得下一个语句可以返回正确的am / pm后缀。 (12:00是am
)。
答案 1 :(得分:1)
第一行使用正则表达式从Date()返回的字符串中提取time元素。例如,这可能是'08:37'这个正则表达式中的括号给出两个不同的'组'字符,第一组匹配'08',第二组匹配'37'
第二行是第一组字符,它将自动转换为数字,并将除法的余数除以12.大概是将24小时时钟数转换为12小时时钟数。 “|| 12'用于返回12,以防余数为0。
第三行使用三元条件运算符添加'a.m'以防小时小于12,否则'p.m。'