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. 记账本微信小程序开发二

    新建一个微信小程序项目 熟悉软件各种操作.

  2. Maven项目启动报错:org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter

    看网上说法tomcat启动时会把lib目录下的jar包加载进内存,而项目里也有相同的jar包就会导致jar包冲突 解决办法: 把pom依赖里相应的jar包添加<scope>标签 <d ...

  3. jboss的使用和安装

    1. 安装 1.1.软件安装 首先要安装JDK(仅仅安装JRE是不行的,因为JSP页面需要编译),最新的正式版是JDK1.4.2.然后把JBoss的压缩包解压到一个目录下,目录名一般是"Jb ...

  4. Jquery部分小结

    window.onload 必须等待网页中所有的内容加载完毕后(包括图片)才能执行,如果多个,只会执行最后一个;$(document).ready() 网页中所有DOM结构绘制完毕后就执行,可能DOM ...

  5. excel 方框打钩

    将光标定位于需要打钩的地方,选择[插入]→[符号]→[其他符号] 在弹出的符号栏里,字体一定要改成[Windings2] 然后在符号栏便可以找到现成的打钩样式,点击插入,再关闭即可 提示:如果需要打叉 ...

  6. EDK II之USB主控制器(EHCI)驱动的实现框架

    本文简要介绍一下UEFI中EHCI驱动的代码实现框架: 下图是HCDI: 上图是Host驱动程序向上层驱动提供的接口图: 1.大部分接口的最后动作都是去操作主控制器寄存器,ECHI的spec:< ...

  7. shell 脚本的时间差计算

    在某个时间点上增加一段时间 将时间转为时间戳,然后增加时间 [root@~]# date +%s -d '2017-05-27 12:0:0' 1495857600 [root@ ~]# new_ti ...

  8. django模板常用过滤器—add、cut、date

    语法格式:{{  obj | filter:para  }} add过滤器:将两个数相加或字符串.列表等进行拼接 views.py def add(request): context={'l1':[1 ...

  9. VMware无法读取USB文件

    今天碰到虚拟机内的Mac OS无法读取USB,经过一番查看,是Windows的服务里面的vmware usb arbitration service服务没有启动,再点击启动的时候,报错,提示本地文件找 ...

  10. Redhat7.4 vim编辑无颜色解决

    背景 发现使用vim时, 统一颜色, 不区分关键字 解决 vim /etc/profile 在文件的末尾加入下面这一行 export TERM=xterm