Ben 7:55am - 9:10am (TR) 8:10am - 9:00am (W)
ve çıkış regex sonucunu içeren çok boyutlu] dizisi şeklinde bir dize ayrıştırmak bir işlev yazmaya çalışıyorum içinde (ex [[7:55am, 9:10am, TR], [7:55am, 9:00am, W]]
) doğru sonucuRegex exec fonksiyonu JavaScript
Bu edilir dönen değil
function parseClassTime(times) {
console.log("Input: " + times);
var timeArr = [];
var finalArr = [];
regexStr = /(\d{1,2}:\d{2}[ap]m) - (\d{1,2}:\d{2}[ap]m) \((\w{1,5})\)/g;
if (times.indexOf(") ") > -1) {
times = times.replace(") ", ")&");
timeArr = times.split("&");
} else {
timeArr.push(times);
}
console.log("timeArr: " + timeArr);
for (i = 0; i < timeArr.length; i++) {
console.log(i + ":" + timeArr[i]);
console.log("regexResult: " + regexStr.exec(timeArr[i]));
}
};
Ve bu alıyorum çıkışı: my fonksiyonu bu haliyle
Input: 7:55am - 9:10am (TR) 8:10am - 9:00am (W)
timeArr: 7:55am - 9:10am (TR),8:10am - 9:00am (W)
0:7:55am - 9:10am (TR)
regexResult: 7:55am - 9:10am (TR),7:55am,9:10am,TR
1:8:10am - 9:00am (W)
regexResult: null
Hayatım boyunca, null
'un nereden geldiğini bulamıyorum. İki çağrı arasındaki regex dizesine .exec()
arasında bir şey mi oluyor?
Lütfen düşüncelerinizi bildirin!
Sadece {0,5} 'ile' {1,5} 'arasında değiştirin. Sanırım sıfır uzunluğa da denk geliyor. –
Öncelikle, 'am' ve 'pm 'sarkıyorsunuz, daha sonra yukarıdaki gibi - [0,5}' 0 karakterleri eşleştirebiliyor. '(\ D {1,2}: \ d {2} [ap] m)' yi deneyin - (\ d {1,2}: \ d {2} [ap] m) \ ((\ w +) \) ' . –
Öneriler için teşekkürler çocuklar! Ben değiştirdim ancak hala bir null değer alıyorum – wKavey