精华内容
下载资源
问答
  • 想要得到的目标结果:([{900400: “请求参数不正确”},{900401: “用户未登录或登录已失效,请重新登录”}]) 整体思路: 1、读取文件,并一行一行存进数组 2、对数组的每一条数据执行正则变换  2.1 将每一行...

    需求:
    1、利用JavaScript+html 提取待处理文件
    2、用正则表达式处理文件,得到目标格式
    3、输出结果

    首先,文件内容为:
    在这里插入图片描述
    想要得到的目标结果:([{900400: “请求参数不正确”},{900401: “用户未登录或登录已失效,请重新登录”}])

    整体思路:
    1、读取文件,并一行一行存进数组
    2、对数组的每一条数据执行正则变换
     2.1 将每一行数据存入数组
     2.2 对数组中的数据按行进行正则变换
     2.3 将变换后的数据进行判断,剔除无效数据
    3、将变换后的结果输出

    1、读取文件并按行存进数组

    在html中,读取文件的方式非常简单

    <input type="file" name="file" id="file">
    

    在这里插入图片描述
    这样就能打开本地文件了

    1.1 按行存储

    由于在js中,没有readLine方法,因此可以换个思路,用split()方法,按"\n" 分隔开,然后存进数组

    var str = this.result.split('\n'); 
    

    2、正则变换

    在这个数据中,有效数据我们可以这样提取:可以看到有效数据分为数字和汉字,因此我们可以利用正则表达式将一个字段中的数字和汉字提取出来,因为我们是需要对一整片文章的每一条数据都进行正则变换的,因此需要一个for循环

    for(var line = 0; line < str.length; line++){
    	var key = str[line].replace(/[^0-9]/ig, "")   //提取数字
        var value = str[line].replace(/[^\u4e00-\u9fa5]/gi,"")    //提取汉字
    }
    

    这样就可以初步将数据提取出来了
    在这里插入图片描述
    但是这样的数据掺杂无效数据
    在这里插入图片描述
    要讲这部分数据剔除掉,我们可以看到,有效数据的key(数字)值和value(汉字)值都不为空,因此就可以想到当key和value有一方为空时,就可以将这条数据删去

    在数组中删除数据,主要有几种方法,这边我首先采用了delete str[line] 的方法,虽然数据时删掉了,但是这条数据还是存在的,只是此时的类型为undefined,输出结果为
    在这里插入图片描述
    出现了错误

    第二次我采用splice(line,1) ,就是从line 行开始,删除一行,这个方法会将原先数据删去会导致数组的索引值发生变化,因为在遍历后也会出错

    最后我换了个思路,当key和value均不为空时,再输出该数据

    if(key != "" && value != ""){   //当key和value均不为空时,将变换后的数据输出
                        result = str[line];   //将有效数据复制给result
                        document.write(result.replace(/[^0-9]/ig, "") +":" + result.replace(/[^\u4e00-\u9fa5]/gi,"") + "<br />")
                    }
    

    这样就能完整输出了
    在这里插入图片描述
    完整代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>正则表达式</title>
    </head>
    
    <body>
    <input type="file" name="file" id="file">
    
    <script charset="utf-8">
    
    //     1、读取文件,并一行一行存进数组
    //     2、对数组的每一条数据执行正则变换
    //      2.1 将每一行数据存入数组
    //      2.2 对数组中的数据按行进行正则变换
    //      2.3 将变换后的数据进行判断,剔除无效数据
    //     3、将变换后的结果输出
            document.getElementById('file').onchange = function(){
            var file = this.files[0];
            var reader = new FileReader(); //读入文件
            reader.onload = function(progressEvent){
                var str = this.result.split('\n'); //按行分隔
                var result;
                for(var line = 0; line < str.length; line++){
                    // console.log(str[line]);
                    var key = str[line].replace(/[^0-9]/ig, "")
                    var value = str[line].replace(/[^\u4e00-\u9fa5]/gi,"")
                    // console.log(str)
    
                    if(key != "" && value != ""){   //当key和value均不为空时,将变换后的数据输出
                        result = str[line];
                        document.write(result.replace(/[^0-9]/ig, "") +":" + result.replace(/[^\u4e00-\u9fa5]/gi,"") + "<br />")
                    }
                }
            };
            reader.readAsText(file);
        };
    
    </script>
    </body>
    </html>
    

    待解决:
    1、value中如果包含字母、数字或中文的情况要如何正则
    对于这个问题我在想是不是可以用其他的方法剔除这两段数据,直接用splite根据 | 分割,是否可以提取到
    欢迎讨论~

    展开全文
  • ionic2 初步实现 Authentication

    千次阅读 2017-03-04 13:48:24
    当用户打开 APP 后会判断用户 token 是否已失效,若失效则进入首页,否则进入登录页面。当用户登出正在操作的时候 token 失效都会回到登录界面。

    用处:当用户打开 APP 后会判断用户 token 是否已失效,若未失效则进入首页,否则进入登录页面。当用户登出或正在操作的时候 token 失效都会回到登录界面。

    首先我们新建一个 provider:ionic g provider AuthenticationService

    打开这个文件,引用BehaviorSubject:import { BehaviorSubject } from 'rxjs/BehaviorSubject';

    BehaviorSubject 是 Subject 的一个衍生类,具有“最新的值”的概念。它总是保存最近向数据消费者发送的值,当一个 Observer 订阅后,它会即刻从 BehaviorSubject 收到“最新的值”。

    代码如下:

    export class AuthenticationService {
    
      activeUser = new BehaviorSubject(null);
    
      constructor() {
      }
    
      doLogin(_username) {
        this.activeUser.next(_username);
      }
    
      doLogout() {
        this.activeUser.next(null);
      }
    
    }

    接下来我们来注册用户认证事件。

    打开 app.component.ts 文件,引入 AuthenticationService,注册用户认证事件以及 rootPage,代码如下:

    export class MyApp {
      rootPage: any;
      public static backButtonPressed: boolean = false; // 用于判断返回键是否触发
      @ViewChild('myNav') nav: Nav;
    
      constructor(public ionicApp: IonicApp, public platform: Platform, 
        private toastService: ToastService, private paramService: ParamService, 
        private auth: AuthenticationService) {
        platform.ready().then(() => {
          // Okay, so the platform is ready and our plugins are available.
          // Here you can do any higher level native things you might need.
          StatusBar.styleDefault();
          Splashscreen.hide();
    
          if (!this.paramService.isNull(localStorage.getItem("token_name"))) {
            auth.doLogin(localStorage.getItem("token_name"));
          }
    
          this.registerBackButtonAction(); // 注册返回按键事件
          this.registerAuthentication(); // 注册用户认证事件
        });
      }
    
      registerAuthentication() {
        this.auth.activeUser.subscribe((_user) => {
          if (_user) {
            this.rootPage = TabsPage;
          } else {
            this.rootPage = LoginPage;
          }
        });
      }
    
      registerBackButtonAction() {
        this.platform.registerBackButtonAction(() => {
          this.backButtonAction();
        }, 999);
      }
    
      backButtonAction() {
        // 如果想点击返回按钮隐藏 toast 或 loading 或 Overlay 就把下面加上
        // this.ionicApp._toastPortal.getActive() || this.ionicApp._loadingPortal.getActive() || this.ionicApp._overlayPortal.getActive()
        let activePortal = this.ionicApp._modalPortal.getActive();
        if (activePortal) {
          activePortal.dismiss().catch(() => {});
          activePortal.onDidDismiss(() => {});
          return;
        }
    
        let activeVC = this.nav.getActive();
        let page = activeVC.instance;
    
        if (!(page instanceof TabsPage)) {
          if (!this.nav.canGoBack()) {
            return this.showExit();
          }
          return this.nav.pop();
        }
    
        let tabs = page.tabs;
        let activeNav = tabs.getSelected();
        return activeNav.canGoBack() ? activeNav.pop() : this.showExit();
      }
    
      showExit() {
        if (MyApp.backButtonPressed) {
          this.platform.exitApp();
        }
    
        MyApp.backButtonPressed = true;
        this.toastService.presentToast("再点一次退出");
        setTimeout(() => {
          MyApp.backButtonPressed = false;
        }, 2000);
      }
    }

    首先对 localStorage 中检验是否有保留用户登录信息,若有则初始化用户认证并进入首页,否则进入登录页。

    接下来就是业务中对 AuthenticationService 的操作,分别调用 doLogin 和 doLogout 来实现用户登录和登出。

    当 activeUser 发生改变时就会触发订阅时的回调函数,判断用户状态来操作 rootPage 实现登录登出功能。


    以后将进一步实现 Authentication 的功能。


    展开全文
  • 1、业务系统通常需要登录才能访问受限资源,在用户未登录情况下访问受限资源需要重定向到登录页面; 2、多个业务系统之间要实现单点登录,即在一个系统应用登录的情况下,再访问另一个系统时不需要重复登录;在...
  • axios http错误码处理

    千次阅读 2019-01-17 13:54:34
    登录失效或在其他地方已登录", [403]: "拒绝访问", [404]: "请求地址出错", [408]: "请求超时", [500]: "服务器内部错误", [501]: "服务实现"

    httpErrCodes.js

     

    const ERR_CODE_LIST = { //常见错误码列表
      [400]: "请求错误",
      [401]: "登录失效或在其他地方已登录",
      [403]: "拒绝访问",
      [404]: "请求地址出错",
      [408]: "请求超时",
      [500]: "服务器内部错误",
      [501]: "服务未实现",
      [502]: "网关错误",
      [503]: "服务不可用",
      [504]: "网关超时",
      [505]: "HTTP版本不受支持"
    }
    
    export function getErrMsg(error) {//通过error处理错误码
      if(!error.response) {//无网络时单独处理
        return {errCode:null, errMsg:"网络不可用,请刷新重试"}
      }
      const errCode = error.response.status //错误码
      const errMsg = ERR_CODE_LIST[errCode] //错误消息
    
      return {errCode: errCode,errMsg: errMsg ? `${errMsg} [${errCode}]` : error.message}
    }
    return axios({
        method: 'post',
        baseURL: setBaseUrl(),
        url: requestUrl,
        data: params || {}, // get 请求时带的参数
        timeout: 100000,
        responseType: type || 'json',
        headers: headerInfo
    }).then(
        (response) => {
            let {result,code,msg} = response
            if(!result&&code == "401"){
                msgBox = showMsgBox(msg,() => {
                    store.dispatch("loginOut"); //前端退出
                    routes.push('/login'); //跳转
                })
                return 
            }
            return response;
        }
    ).catch(error => {
        const {errCode,errMsg} = getErrMsg(error);
        if(errCode == 401){ //登录失效 -> 跳转登录页
          if(!msgBox){
            msgBox = showMsgBox(errMsg,() => {
                store.dispatch("loginOut"); //前端退出
                routes.push('/login'); //跳转
            })
          }
        }else{
          showMsg(errMsg);
        }
    
        return Promise.reject(error)
    })

     

    展开全文
  • :使在指定时间段内激活的会话失效。 :提供电子邮件和密码的验证。 它是可选的,可以自定义,因此您可以定义自己的验证。 :在指定次数的登录尝试失败后锁定帐户。 可以通过电子邮件在指定时间段后解锁。 ...
  •  指别人发送的自己还接收的文件,操作时和收文件相似。收文件列表右边会出现“接收”链接,点击后此文件就会变成收文件。  六、常用文件  指经常要用到的文件,如常用表格等。只有管理员才可设定哪些文件...
  •  指别人发送的自己还接收的文件,操作时和收文件相似。收文件列表右边会出现“接收”链接,点击后此文件就会变成收文件。  六、常用文件  指经常要用到的文件,如常用表格等。只有管理员才可设定哪些...
  • jd-assistant-master.zip

    2020-07-11 22:01:47
    解决1:在设置中心选择好模式后---点击【登录】---登录完成后点击窗口右下方的【我已登录】即可解决cookie失效问题。 2、无法点击【开始抢购】; 解决:需要输入商品ID后,才能勾选此项。 3、模式选择; a.任何商品...
  • 学校OA信息系统V2010

    2012-04-16 08:52:26
     指别人发送的自己还接收的文件,操作时和收文件相似。收文件列表右边会出现“接收”链接,点击后此文件就会变成收文件。  六、常用文件  指经常要用到的文件,如常用表格等。只有管理员才可设定哪些...
  •  指别人发送的自己还接收的文件,操作时和收文件相似。收文件列表右边会出现“接收”链接,点击后此文件就会变成收文件。  六、常用文件  指经常要用到的文件,如常用表格等。只有管理员才可设定哪些...
  •  指别人发送的自己还接收的文件,操作时和收文件相似。收文件列表右边会出现“接收”链接,点击后此文件就会变成收文件。  六、常用文件  指经常要用到的文件,如常用表格等。只有管理员才可设定哪些...
  • “状态”列显示此试卷结束、开始进行中。 “查分”列显示此试卷是否对学生开放查分功能,开放的显示“允许”,开放的显示“禁止”,点 击“允许”会设置成禁止,点击“禁止”会设置成允许。 “操作”列显示...
  • realplayer

    2010-08-18 10:57:02
    如果您禁用 cookies,则每次访问高级软件功能和服务时,您均要进行登录,并且某些 Real 服务可能无法正确运行。 详情请访问我公司网站上的 RealNetworks 隐私策略链接 ...
  • 另外说明,从8.0.0版本升级至8.2.0版本的用户(还升级成最新版本8.2.1),出现登录崩溃的情况,请将原来的版本卸载并重新安装,便可解决崩溃的问题,或者直接安装8.2.1版本也可解决,给大家带来麻烦还请谅解!...
  • 通达OA2010 完美破解补丁

    热门讨论 2011-08-31 14:06:04
    2、修复使用PJ补丁后,禁止用户登录功能失效,现修复; 3、修复使用PJ补丁后,邮箱和文件柜出错BUG; 4、修复使用PJ补丁后,修复数据库之后邮箱和文件柜出错BUG; 5、集成ZCJ功能,可随时完美注册; 6、屏蔽掉...
  • 文章管理系统

    2014-12-06 10:19:22
    3.[改进]为了后台系统安全,后台登录页不用判断是否已登录状态并自动跳转到管理页 4.[改进]后台编辑器CKEditor V3.6.1升级到CKEditor V3.6.6 5.[改进]前台编辑器KindEditor V3.5.5升级到KindEditor V3.5.6 6.[纠正]...
  • 美萍足浴软件1010v2

    2010-04-29 13:27:13
    2、个人消费明细查询: 功能 此模块用来查询当前在店消费宾客记录在册的消费清单(一般根据宾客的要求某种特殊需要会用到此模块)。 (图7) 点击菜单“点单消费→消费明细查询” 进入“个人消费明细查询”...
  • 12306心蓝定票助手

    2015-03-19 09:14:02
    8、内置支付订单和支付订单查询,首创改签自动查询提交功能让改签更省力省心; 9、文件-选项中含多项自定义参数,如订票成功邮件(手机短信/微信)通知及美妙声音提醒等; 10、一次购买,永久免费升级。精益求精,...
  • EduSoho网校系统 V8.2.25

    2018-06-12 17:08:46
    修复:少数情况下会员权益到期后仍可学习加入的会员限制课程的问题 8.2.31(2018-5-30) 新增:管理员导入的账号登录时候提醒修改密码的功能 修复:少数情况下通过第三方渠道注册账号时不出现安全验证的问题 ...
  • 消费卡使用期限,即后台开卡之后,在一定期限之内有效,超过即为失效不能再使用。  (11)支付接口设置: 目前支持财付通、网银在线支付接口。从第3位元素开始分别为:财付通商户号、财付通32位密钥;网银...
  • 主页设置示例(未登录) 主页弹幕显示(登录) 主页设置示例(登录) 开源 基于GPL-3.0 License开源协议. 项目线上实战展示 破站-Elysian绿豆直播间(用户名:Elysian绿豆) 破站-坂本叔直播间 (用户名:...
  • 活动目录同时提供对网络资源集中控制,允许用户只登录一次就可以访问整个活动目录的资源。/ [) F0 b& {- Z' Y : Q8 }* B' c% \$ Z# w0 q- x- @ 2.活动目录对象% i& Q! Q* t' M4 {7 }' n- K$ y * Z2 j) M0 E4 [) U* ...
  • 2020-10-31 修复清除空会话失效,优化置底、公众号浏览,新增一键卸载小助手,新增关闭皮肤选项,新增群员监控、拒收群消息。 2020-09-20 系统低于macOS10.14不再支持皮肤,修复2.4.2 (15650)选取联系人Crash,优化...
  • 2、修复使用PJ补丁后,禁止用户登录功能失效,现修复; 3、修复使用PJ补丁后,邮箱和文件柜出错BUG; 4、修复使用PJ补丁后,修复数据库之后邮箱和文件柜出错BUG; 5、集成ZCJ功能,可随时完美注册; 6、屏蔽掉...
  • java windows 计时工具

    2010-02-01 17:39:03
    (显示任务剩余时间时,如果当前工作日选择给定时间过时,则不显示剩余时间。) 倒计时 以秒为单位倒计时执行指定的任务。输入倒计时数时以分钟为单位输入。 任务列表 任务列表 任务列表,显示待执行的...
  • 去掉签名文件名中的 "unsigned" "签名" 等字样, 以避免文件名标记混乱 如果使用同一个证书对同一个文件多次签名,签名文件不会覆盖而是会自动改名(追加[1]、[2]等) ● 其他 本工具下载后默认安装...
  • 3) 修改核心库中“播放音乐”命令在没有声卡声卡被禁用时正确释放资源的BUG 4) 修改静态编译后“读配置项”命令在第三个参数“配置项名称”为空文本时导致程序崩溃的BUG 5) 修改高级选择夹中的组件在窗口载入...
  • 若状态为“结帐关闭点播系统”“空置关闭点播系统”,则可以结帐重开,不再重复收取最低消费,只收钟点费; 4、结帐时,增加一个计算器功能。收银结帐时,要能够输入 实收金额,然后系统自动计算出找补数目;...
  • 电子商务商城网站代码

    热门讨论 2010-01-06 09:50:53
    已失效的冲值卡 已售出的冲值卡 售出的冲值卡 资金明细 所有资金明细记录 所有收入记录 所有支出记录 所有支出记录 所有已确认记录 所有确认记录 会员有效期明细 所有有效期明细记录 所有添加有效...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

未登录或登录已失效