Actual Code
Code Instructions
(更新) :我将说明和代码添加为图片。我尝试了建议,但没有通过。 (更新)
这是我在这里的第一个问题。一直在使用堆栈寻求建议,但这次我很困惑。我是正则表达式的新手,因此对这项工作一无所知。
问题如下:
”编写一个正则表达式测试,以便...
仅包含字母数字字符(小写和大写字母
仅允许使用数字-(无空格,无下划线)
至少包含2个字符
具有一个数字,因为通过格式接受最终字符(例如'Jason1')
我们在这里使用此代码... 函数validate(){ 让inputStr = document.getElementById(“ username”)。value;
// const myReg = //取消注释此行,并在此处添加正则表达式文字
如果(myReg.test(inputStr)) alert(“接受用户名”); 其他 alert(“用户名必须仅包含字母数字字符,最少包含两个字符,并以数字结尾。”); }
因此,我们必须取出Uncomment,并希望它与myReg.test相匹配。 我尽力做到/^[a-z\d][5.12]$/i和/ ^ [a-z \ d +?] $ / i 但是我完全没事了!看起来如何?
答案 0 :(得分:0)
我的解决方案是这样(regex101 link):
/[A-z0-9]+\d/
让我解释一下。
您可以使用[]
创建允许的字符列表(例如,每个[]
将匹配一个字符,但列表中可以匹配任何一个字符)。通常,我会使用\w
,但这等效于[A-Za-z0-9_]
,并且该问题没有下划线规定(您可以通过对A
进行z
来节省空间,因为大写字母是在Unicode中小写之前)。
{}
用于指定必须匹配的字符数量。因此,您可以说a{3,6}
,这意味着只有三到六个a
之间可以匹配。您可以省略最后一个索引(a{3,}
),至少说出这么多匹配项,或者说在n
和无限制时间之间。使用此功能,可以将“至少一个”与{1,}
匹配。然后将其缩短为等效的+
。
最后,我们说正则表达式的末尾必须有一个数字\d
。
通过要求任何接受的字符中至少有一个末尾带有数字来覆盖“最小长度为2”。一加一等于二。
答案 1 :(得分:0)
function validate() {
let inputStr = document.getElementById("username").value;
const myReg = /^[a-z0-9]{1,}[0-9]$/igm
if (myReg.test(inputStr))
alert("Username accepted");
else
alert("Username must contain only alphanumeric characters, contain a minimum of two characters, and end with a digit.");
}
此链接将使您了解所有正则表达式https://regex101.com/r/dX3hD4/240