符号作为正则表达式中的可选字符

时间:2016-07-20 08:32:23

标签: javascript regex

目前,这是我的正则表达方式:

UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower()
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower()
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower()
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower()
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower()
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower()
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower()
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower()
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower()
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower()
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower()
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower()

从上面的正则表达式,myPassword应至少包含1位数字,1个大写字母和小写字母。现在我想添加符号作为可选项。我尝试添加

var myPassword = $('#reg_password').val();
if (myPassword.match(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,}$/)) {}

在我的正则表达式中的各个地方,但它不起作用......

2 个答案:

答案 0 :(得分:2)

请勿尝试将所有内容放在一个正则表达式中。只需单独测试您的要求!

if (myPassword.length >= 8 &&
    /[a-z]/.test(myPassword) &&
    /[A-Z]/.test(myPassword) &&
    /\d/.test(myPassword) &&
    /[@$!%*#?&]/.test(myPassword)) {
}

答案 1 :(得分:0)

您只需在[0-9a-zA-Z]中添加符号,就像这样:

/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z@$!%*#?&]{8,}$/