• 美团——小美的用户名


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


    题目描述

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

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

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

    解题步骤

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

    let fs = require('fs');
    
    • 1

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

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

    readFileSync

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

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

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

    var num = 15;
    var n = num.toString();
    console.log(n);
    
    • 1
    • 2
    • 3

    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]*$/
    
    • 1

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

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

    其中修饰符定义如下:

    • 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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    其他正则表达式规则定义请见该文: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')
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    Word2021中的The Mathtype DLL cannot be found问题解决(office 16+mathtype7+非初次安装)
    2023软件测试的4个技术等级,你在哪个级别?
    铁死亡化合物库
    Git——关于Git的一些补充(1)
    鱼传科技:函数计算,只要用上就会觉得香
    4.1 配置Mysql与注册登录模块
    cms之帝国cms安装
    java计算机毕业设计旅游信息分享网站源码+mysql数据库+系统+lw文档+部署
    【消息队列】MQ02——Kafka
    Java习题:第三章 面向对象
  • 原文地址:https://blog.csdn.net/qq_42544728/article/details/127540196