美团——小美的用户名

题目链接:小美的用户名。


题目描述

小美是美团的前端工程师,为了防止系统被恶意攻击,小美必须要在用户输入用户名之前做一个合法性检查,一个合法的用户名必须满足以下几个要求:

  • 用户名的首字符必须是大写或者小写字母。
  • 用户名只能够包含大小写字母、数字
  • 用户名需要包含至少一个字母或者数字

若用户名合法,则输出Accept,反之则输出Wrong

解题步骤

首先考虑输入的情况,这里借助Node模块fs,用来处理文件的读写、复制、删除、重命名等操作。

let fs = require('fs');

读取文件并且保存文件内容的每一行,这里分别介绍api:

const lines = fs.readFileSync(0).toString().trim().split(/\r\n|\r|\n/);

readFileSync

readFileSync同步读取文件,可以传入两个参数:

  • 第一个参数代表着文件路径;
  • 第二个参数代表着读取文件的编码方式(可以省略)。

toString方法将把数字转换为字符串,如下代码示例:

var num = 15;
var n = num.toString();
console.log(n);

trim方法负责去除字符串首部和尾部的空格:

  • trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
  • trim()方法不会改变原始字符串。
  • trim() 方法不适用于 null, undefined, Number 类型。

JavaScript的split方法负责把一个字符串分割成字符串数组。

提示: 如果把空字符串 (“”) 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
注意: split() 方法不改变原始字符串。

定义正则表达式变量regName

const regName = /^[a-zA-Z][0-9a-zA-Z]*[0-9]+[0-9a-zA-Z]*$/

在JavaScript中创建正则表达式如下规则:

var reg = /正则表达式/修饰符

其中修饰符定义如下:

  • i:ignoreCase, 匹配忽视大小写。
  • g:标识全局匹配。
  • m :multiline , 多行匹配。

正则匹配test()方法:
test() 方法是一个正则表达式方法。

test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
以下实例用于搜索字符串中的字符 “e”,具体代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test正则匹配</title>
</head>
<body>

<script>
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
</script>

</body>
</html>

其他正则表达式规则定义请见该文:JavaScript正则。

代码

const fs = require('fs')
const lines = fs.readFileSync(0).toString().trim().split(/\r\n|\r|\n/)
const T = lines[0]
const regName = /^[a-zA-Z][0-9a-zA-Z]*[0-9]+[0-9a-zA-Z]*$/
for(let i = 1 ; i < lines.length ; i++){
    if(regName.test(lines[i])) console.log('Accept')
    else console.log('Wrong')
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值