[英]Changing the date format if not correct in Javascript
我創建了一個移動應用程序,該應用程序掃描其中嵌入了各種信息的QR碼。 信息之一是日期。
與以前的版本相比,QR碼中的日期格式有所更改。 以前的日期格式為mm / dd,新版本為yy-MM-dd。
我能夠掃描標簽的新版本或舊版本,但不能同時掃描兩者。 我需要獲取它來識別機器人類型。 我不確定是否可以使用if語句識別舊格式並將其轉換為新格式。
這是使用新標簽的工作代碼示例。
(function(){
'use strict';
var app = angular.module('Controllers', []);
var baseUrl = 'https://apps.laticrete.com/LSCWebApiService/lscapi/';
app.controller('BarcodeCtrl', ['$scope', '$state', '$stateParams', '$http', 'alertsManager', '$timeout', 'localStorageService', '$cordovaBarcodeScanner', '$cordovaGeolocation', '$filter',
function($scope, $state, $stateParams, $http, alertsManager, $timeout, localStorageService, $cordovaBarcodeScanner, $cordovaGeolocation, $filter) {
var SessionId = localStorageService.get('SessionId');
// Get GeoLocation
$cordovaGeolocation
.getCurrentPosition()
.then(function(position) {
$scope.lat = position.coords.latitude;
$scope.long = position.coords.longitude;
});
document.addEventListener("deviceready", function() {
$scope.scanMaterial = function() {
$cordovaBarcodeScanner
.scan()
.then(function(result) {
var codeArray = result.text.split(',');
$scope.SKU = codeArray[1].replace("I:", "").trim();
$scope.ControlNumber = codeArray[0].replace("W:", "").trim();
//$scope.ManufactureDate = codeArray[2].replace("MFG:", "").trim();
$scope.ManufactureDate = codeArray[2].replace("MFG:", "20").replace(/(\d{4})(\d{2})(\d{2})/, "$1-$2-$3").trim();
$scope.BatchCode = codeArray[3].replace("B:", "").trim();
var dataObj = {
SessionId: SessionId,
JobId: $stateParams.JobId,
ManufactureDate: $scope.ManufactureDate,
BatchCode: $scope.BatchCode,
SKU: $scope.SKU,
ControlNumber: $scope.ControlNumber,
CreatedClient: new Date(),
Latitude: $scope.lat,
Longitude: $scope.long,
Product: { Id : 1}
};
$http.post(baseUrl + 'Material/PostNewMaterial', dataObj)
.success(function() {
alertsManager.addAlert('Success: You have successfully added material.', 'alert-success');
$state.go('^');
}).error(function(dataObj) {
alertsManager.addAlert('Failure Meesage: ' + JSON.stringify({dataObj:dataObj}), 'alert-danger');
});
$timeout(function(){
alertsManager.clearAlerts();
}, 5000);
}, function(error) {
console.log("An error has happened " + error);
});
};
}, false);
}]);
})();
我要尋求幫助的代碼部分是$ scope.ManufactureDate
先感謝您。
檢查代碼是否與格式之一匹配,如果匹配,則進行相應的解析。
if (codeArray[2].match(/MFG:\d+-\d+-\d+/) !== null) {
/* The format is of 'MFG:000-000-000', \d+ matches 1..n numbers */
...
}
或者,您可以將這些組合成一個正則表達式:
let matches = codeArray[2].match(/MFG:(20(\d{2})-\d{2}-\d{2})|(\d{2}/\d{2}))/);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.