【发布时间】:2020-12-01 20:36:54
【问题描述】:
我正在尝试将此代码移植到 javascript 中以支持我的后端验证。但是,我不确定 javascript 是否有任何或 isdigit() 或理解列表来实现这一点
def clean_password1(self):
password1 = self.cleaned_data.get('password1')
special_characters = "[~\!@#\$%\^&\*\(\)_\+{}\":;,'\[\]]"
if not any(char.isdigit() for char in password1):
raise forms.ValidationError(
'Password must contain at least %(min_length)d digit.' % {'min_length': 2})
if not any(char.isalpha() for char in password1):
raise forms.ValidationError(
'Password must contain at least %(min_length)d letter.' % {'min_length': 6})
if not any(char in special_characters for char in password1):
raise forms.ValidationError(
'Password must contain at least %(min_length)d special character.' % {'min_length': 1})
if len(password1) < 8:
raise forms.ValidationError(
'Password must contain at least %(min_length)d characters.' % {'min_length': 8})
javascript
if (password.length < 8){
addErrorTo('password', data['message']['password1']);
}
【问题讨论】:
-
JavaScript 中没有列表推导,但逻辑很简单,可以使用标准功能实现它。
isNaN可以检查字符是否为 in 有效数字(true表示无效,false表示有效)。您可能需要一个简单的字母正则表达式。一般来说,你可以用 3 个正则表达式和一个长度检查来实现它。或者更通用的是,为每次检查运行一个正则表达式(总共 4 个)。即使这样,如果您在 UI 中执行此操作,也有许多支持标准的验证库可用。甚至有专门用于密码验证的解决方案。 -
typeof char === 'number'将检查它是否是数字 -
@fedesc 它也永远不会说
true,因为字符串中的每个字符都是字符串本身,而不是数字。除非你转换它。
标签: javascript python django