博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[午间休息] - 午间codewars活跃脑袋
阅读量:6642 次
发布时间:2019-06-25

本文共 1111 字,大约阅读时间需要 3 分钟。

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

这个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]竟然也是通过了.(这个疑问之后再详解)

 

转载于:https://www.cnblogs.com/ukzq/p/10341601.html

你可能感兴趣的文章
做ctf题对malloc的疑问
查看>>
小程序运行报错:errMsg: "request:fail url not in domain list"
查看>>
可能你不知道的,关于自动装箱和自动拆箱
查看>>
一些实用的奇技淫巧
查看>>
(转载)JAVA SE6.0 中使用SplashScreen
查看>>
yii2.0框架安装
查看>>
core data
查看>>
java中文件操作《一》
查看>>
怎么预防sql注入攻击
查看>>
HTTPS原理
查看>>
gispro试用版账户注册
查看>>
转:测试计划(出处:: 51Testing软件测试网--zfx081)
查看>>
#、#@、## in C++宏定义
查看>>
VM虚拟机下的Linux不能上网
查看>>
后缀数组小结
查看>>
myEclipse 输入时英文自动变成2个字符大小
查看>>
gulp自动化打包及静态文件自动添加版本号
查看>>
对ASP.NET程序员非常有用的85个工具
查看>>
iOS小技巧总结
查看>>
2016-8-25
查看>>