https://www.codewars.com/kata/51f2b4448cadf20ed0000386/javascript

中午是一个易困的时间段.如果其它人不睡觉还好.

这个js题目就是说如果你的函数传入一个url路径,但是你要把含有#的给去掉

Complete the function/method so that it returns the url with anything after the anchor (#) removed.

// returns 'www.codewars.com'
removeUrlAnchor('www.codewars.com#about') // returns 'www.codewars.com?page=1'
removeUrlAnchor('www.codewars.com?page=1')
//my solution
function removeUrlAnchor(url){
// TODO: complete if(url.indexOf("#") != -1){
return url.substring(0,url.indexOf("#"));
}else{
return url;
}
}

这个显然通过了,使用了substring,如果含有#,则通过#进行剪切,否则那就是没有#,直接返回原链接.

但是太过于逻辑化,CW大神的解:

function removeUrlAnchor(url){
return url.split('#')[0];
}

这表示通过#符号将链接分为数组,并返回获取数组下标0的元素.

是的,连判定url是否含有#都省去了.

之后还有这个:

function removeUrlAnchor(url){
// TODO: complete
return url.replace(/#.*/gi,"");
}

使用了正则表达式./#.*/gi   (g: 全局匹配 i: 忽略大小写 gi: 全局匹配 + 忽略大小写) #.*表示贪婪匹配匹配#后的所有东西

之后还有match:

function removeUrlAnchor(url)
{
return url.match(/([^#]*)/)[1];
}

只要是”^”这个字符是在中括号”[]”中被使用的话就是表示字符类的否定,如果不是的话就是表示限定开头。

这里的[1]我很有疑问,我把这个答案跑了一遍,之后将1改为[0]后依然全票通过.

match返回的是数组,这个就是说除了#和后面的可以获取到的元素数组的[0]下标0,但下标[1]竟然也是通过了.(这个疑问之后再详解)

[午间休息] - 午间codewars活跃脑袋的更多相关文章

  1. Goals100

    Start:2016.4.10 100天目标:jy_ai学习.swift.设计模式        以10天为周期,开始周会,执行内容:自我检讨本周期,并展望下一个周期:目标一:寻找高效方法.1.思考, ...

  2. 前端学习:学习笔记(HTML部分)

    前端学习:学习笔记(HTML部分) HTML学习总结(图解) HTML简介 1.HTML是什么? 超文本标记语言 超文本:文字/图片/音频/视频.... 标记/标签 2.HTML的用途? 是用来编写静 ...

  3. [逻辑学]意外绞刑悖论(Hangman paradox)(又称意外考试悖论)

    绞刑 在审讯中一位囚徒被法官判处死刑.判决如下:“你下周将会被处决,但哪天处决对你来说是一个惊喜.”囚徒因此作出如下推理:“假如处决日是周日,那么在周六夜晚降临后,我将提前知道我周日会被处决,那样的话 ...

  4. 调bug的一点感悟

    出错时一定要先看错误日志,要知道出什么错了,所以平常在可能出错的地方都要输出错误日志. 不要根据脑中的设想去调bug,时间久了就没有耐心,一烦躁起来,思维定势了,就越调不出来了. 所以一般半小时还找不 ...

  5. 午间邂逅 | post 和 get 的兄弟情深

    前言 本文已经收录到我的 Github 个人博客,欢迎大佬们光临寒舍: 我的 Github 博客 学习导图: image-20200710142453734 image-202007101431049 ...

  6. 《高效休息法》IT从业者如何高效休息

    这本书主要讲什么? 大脑疲劳和身体疲劳不同,身体再怎么休息,大脑疲劳还是会在不知不觉中积累 大脑是一个重量仅仅占体重2%,却消耗着20%能量的大胃王,这些能量大部分都用在了预设模式网络(Default ...

  7. 【Java并发基础】安全性、活跃性与性能问题

    前言 Java的多线程是一把双刃剑,使用好它可以使我们的程序更高效,但是出现并发问题时,我们的程序将会变得非常糟糕.并发编程中需要注意三方面的问题,分别是安全性.活跃性和性能问题. 安全性问题 我们经 ...

  8. 五二不休息,今天也学习,从JS执行栈角度图解递归以及二叉树的前、中、后遍历的底层差异

    壹 ❀ 引 想必凡是接触过二叉树算法的同学,在刚上手那会,一定都经历过题目无从下手,甚至连题解都看不懂的痛苦.由于leetcode不方便调试,题目做错了也不知道错在哪里,最后无奈的cv答案后心里还不断 ...

  9. 算是休息了这么长时间吧!准备学习下python文本处理了,哪位大大有好书推荐的说下!

    算是休息了这么长时间吧!准备学习下python文本处理了,哪位大大有好书推荐的说下!

随机推荐

  1. C# 自定义用户控件

    上篇:控件制作 本例是制作一个简单的自定义控件,然后用一个简单的测试程序,对于初学者来说,本例子比较简单,只能起到抛石引玉的效果.我也是在学习当中,今后会将自己所学的逐步写出来和大家交流共享. 第一步 ...

  2. mitmproxy 中间人攻击的小玩笑

    import mitmproxy.http from mitmproxy import ctx, http class Joker: def request(self, flow: mitmproxy ...

  3. Spring boot 问题总结

    1. Spring boot 嵌入的tomcat不能启动: Unregistering JMX-exposed beans on shutdown   在官网(http://start.spring. ...

  4. qq网吧弹框如何去掉?如何删掉NetBar文件夹?

    qq网吧弹框如何去掉?如何删掉NetBar文件夹?有些qq会弹出qq网吧,让人烦恼.而且点了那个不是网吧的反馈了多次都还会弹出.如何退出关闭删除取消去掉qq网吧呢,下面介绍一种解决方法:1.打开qq安 ...

  5. RSA 加密 解密 公钥 私钥 签名 加签 验签

    http://blog.csdn.net/21aspnet/article/details/7249401# http://www.ruanyifeng.com/blog/2013/06/rsa_al ...

  6. A2W,W2A等的使用

    #include <atlbase.h> #include <atlconv.h> 代码块 { ...... USES_CONVERSION; CString TempDirP ...

  7. java-工厂方法模式学习笔记

    1.工厂模式分三种 1.1 普通工厂模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例创建,如下图所示: 就以老司机开车(土豪开奔驰,宝马:屌丝骑自行车)为例,说明一下普通工厂模式: 首先,创 ...

  8. Python进阶【第五篇】函数式编程及某些特殊函数

    一.函数式编程——Functional Programming 函数式=编程语言定义的函数+数学意义的函数 在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语 ...

  9. self asyncio

    import asyncio from threading import Thread import time print('main start:',time.time()) async def d ...

  10. Bootstrap表单样式

    <form class="form-horizontal" role="form"> <fieldset> <legend> ...