gpt4 book ai didi

javascript - 如果 Javascript 中的日期格式不正确,则更改日期格式

转载 作者:行者123 更新时间:2023-12-03 03:04:58 27 4
gpt4 key购买 nike

我创建了一个移动应用程序,可以扫描嵌入了各种信息的二维码。其中一项信息是日期。

QR-CODE 与之前版本相比,日期格式发生了变化。之前的日期格式为 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}))/);

参见String.prototype.match

关于javascript - 如果 Javascript 中的日期格式不正确,则更改日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47211320/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com