gpt4 book ai didi

javascript - toString().length 在一个有零且只有零的数字上总是返回 0

转载 作者:行者123 更新时间:2023-11-29 10:28:40 25 4
gpt4 key购买 nike

我正在开发一个页面,该页面接受来自用户的 4 位数字(正好是 4 位数字)的 pin。像这样。

<input type="number" ng-model="passCode" class="form-control" onpaste="return false" id="passCodeField"  ng-disabled="!enablePassCode" ng-change="onInputPasscode()" ng-keypress="onKeyPressPasscode($event)"/>

onKeyPressPasscode 函数

$scope.onKeyPressPasscode = function($event) {
if(isNaN(String.fromCharCode($event.which || $event.keyCode))){
$event.preventDefault();
}
}

onInputPasscode() 函数:

$scope.onInputPasscode = function() {
if ($scope.passCode.toString().length > 4){
$scope.passCode = $scope.passcode;
}
if($scope.passCode.toString().length == 4) {
$scope.passcode = $scope.passCode;
$scope.disableContinue = false;
session.put('pinFlow',true);
} else {
console.log("current length - " + $scope.passCode);
$scope.disableContinue = true;
session.put('pinFlow',false);
}

}

当输入全为零时,这是失败的。即当前长度没有得到更新,因此允许用户输入他想要的任意数量的零。我如何将 4 位零作为输入并仍然满足我的检查?

debugging image

这是 Angular 1.5.8v。而且我不是 AngularJS 方面的专家。所以任何帮助将不胜感激。另外,如果需要任何其他信息,请告诉我。我会相应地更新答案。

提前致谢。

最佳答案

type 设置为 number 的输入无法执行此操作。当用户输入数字 0001 时,实际上是 1。像 PIN 之类的东西应该用 type 设置为 text 来处理。然后您可以使用正则表达式进行验证。

要恰好允许四位数字,不多也不少,请使用以下正则表达式:

^\d{4,4}$

在 JavaScript 中,使用此正则表达式来测试字符串,如下所示:

/^\d{4,4}$/.test('1234')
// => true

/^\d{4,4}$/.test('123456')
// => false

/^\d{4,4}$/.test('12')
// => false

关于javascript - toString().length 在一个有零且只有零的数字上总是返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52092036/

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