Ant Design Vue 3.2.11
<a-form :label-col="{ span: 3 }" :model="formState">
<a-form-item label="新密码" name="newPwd" :rules="[{ required: true, pattern: new RegExp(/((?=.*\d)(?=.*\D)|(?=.*[a-zA-Z])(?=.*[^a-zA-Z]))(?!^.*[\u4E00-\u9FA5].*$)^\S{8,22}$/),
message: '字母、数字及特殊字符两种以上8-22位' }]">
<a-input-password style="max-width:400px;min-width:200px;" v-model:value="formState.newPwd" placeholder="请输入新密码"/> 字母、数字及特殊字符两种以上8-22位
</a-form-item>
<a-form-item label="重复一次密码" name="rePwd" :rules="[{ required: true, message: '两次密码不一致', pattern: new RegExp('^'+formState.newPwd + '$') }]">
<a-input-password style="max-width:400px;min-width:200px;" v-model:value="formState.rePwd" placeholder="重复一次新密码"/>
</a-form-item>
</a-form>
找了各种版本的代码试了半天,都不行,后面想想是不是把问题复杂化了...动态构造个新的正则表达式试试,搞定!