react使用正则匹配密码:由大写字母开头,必须包含大小写字母和数字,长度是8-15位

最近做了一个项目的需求是这样的:首次登录需要修改密码,(原来密码是8位的数字),且密码的格式必须是大写字母开头,必须包含大小写字母和数字,长度是8-15位

javascript正则不怎么会,自我认为正则也是javascipt中比较难的一部分,常听别人说,遇到正则的问题,直接百度就行,可是我百度了很久,都没有这个要求,于是,就上B站看了向军老师的正则视频,因为时间紧任务重,就看了一下基础的,因为之前有学过正则,只是时间长了,就忘了,后来自己再通过百度,

这是我第一次写的正则, 但是有很多情况没有考虑到,比如这种

就匹配不上,这种是符合格式的,但是匹配不成功,后来又想了一种,是这样的,

 

{
    pattern: /^[A-Z]((?![^a-z]+$)(?!\D+$).{7,14}$)$/,
    message: '请输入以大写字母开头,长度至少是8-15位的数字和字母的新密码'
}

 目前还没有发现问题,也不知道匹配的对不对,这个也是自己在网上找了很几个案例,临时拼凑起来的,对于这个思路,我是看这个解答才模仿的来的,

下面的这个正则表示:8到15位字符,必须包含有字母和数字

谁能给我讲讲这个正则^(?![^a-zA-Z]+$)(?!\D+$).{8,15}$主要是?!的用法

这里使用到了正则的高级----零宽断言,

关于零宽断言,我比较推荐这两篇文章,

javascript 正则表达式-零宽断言

javascript正则--零宽断言--案例解析

一篇是解释基本概念,另一篇是根据解析一个案例,虽然我案例没看太懂哈。

另外B站向军老师的课程里面也有讲解,有时间跟着视频敲效果也挺好的,

为了节省时间,特意整理出来向军老师B站上面的笔记,

JS——正则表达式

还有这个正则表达式速查

javascript正则表达式速查

相信以后遇到正则问题,随时翻看一下能解决大部分问题,因为以上大部分是转载的,有侵权行为,请随时联系本人,速度删除。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是使用React Hook和Fusion Form组件实现的正则表达式,可以校验输入的值是否符合要求: ```jsx import React, { useState } from 'react'; import { Form, Input } from '@alifd/next'; const formItemLayout = { labelCol: { fixedSpan: 6 }, wrapperCol: { span: 18 } }; const MyForm = () => { const [formValue, setFormValue] = useState({}); const formChange = (value) => { setFormValue(value); }; const validateRegex = /^(?!.*\/).*$/; const validateLength = (rule, value, callback) => { if (value && value.length >= 1 && value.length <= 255 && validateRegex.test(value)) { callback(); } else { callback('输入的值必须在1到255之间,且不包含/'); } }; return ( <div> <Form value={formValue} onChange={formChange} {...formItemLayout} > <Form.Item label="输入框" required> <Input name="input" placeholder="请输入" validator={validateLength} /> </Form.Item> </Form> </div> ); }; export default MyForm; ``` 在这个示例中,我们定义了一个名为`validateRegex`的正则表达式,它使用了负向先行断言`(?!.*\/)`,表示输入的值不能包含斜杠字符`/`。然后,我们使用`validateLength`方法来校验输入的值的长度是否在1到255之间,并且不包含斜杠字符`/`。该方法是作为`validator`属性传递给`Input`组件的,用于在表单提交或输入变化时进行校验。 请注意,我们在`Form.Item`组件中将`label`属性设置为“输入框”,将`required`属性设置为true,以便在输入框为空时显示错误信息。如果输入框的值不符合校验规则,表单会自动显示错误信息。 希望这个示例可以帮助你实现你的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值