V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Kitayama
V2EX  ›  正则表达式

正则表达式

  •  
  •   Kitayama · 2016-04-01 14:18:56 +08:00 · 2189 次点击
    这是一个创建于 3163 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 FCC 网看到一道 JS 题目,代码如下:

    function palindrome(str) {

    var strippedStr = str.toLowerCase().replace(/\W|_/g, ''); var reversedStr = strippedStr.split('').reverse().join('');

    if(reversedStr === strippedStr) { return true; } else { return false; } }

    palindrome("A man, a plan, a canal. Panama");

    其中的 replace 中的(/,|,_ ) 分别代表什么意思呢?

    10 条回复    2016-04-01 16:19:57 +08:00
    gimp
        1
    gimp  
       2016-04-01 14:23:42 +08:00
    两个 / / 是范围, g 是全局的意思,\W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]” | 是或者的意思。逗号后边的''是两个单引号,我猜是看成一个双引号有点迷茫?
    whahuzhihao
        2
    whahuzhihao  
       2016-04-01 14:24:19 +08:00
    / 是定界符 表示中间这段是正则的内容
    | 是或
    _ 就是下划线咯
    Kitayama
        3
    Kitayama  
    OP
       2016-04-01 14:38:08 +08:00
    @gimp 查了下正则表达式,知道\w ,就是不明白为什么要在\w 前加一个 /,后面跟一个|_ 。
    整句话翻译一下:用‘’代替,全局匹配到的任何非单词字符吗?
    请问一下 replace ,''中如果什么都不写,是和 split('')一样,将字符串中所有单词都变成独立的吗?原本 string='asdaf',变成‘ a','s','d','a','f' 这样吗
    UnisandK
        4
    UnisandK  
       2016-04-01 14:47:11 +08:00
    主体就是 \W|_ 呗,\W 匹配任意不是字母,数字,下划线,汉字的字符。后边加个“或下划线”,就是匹配任意不是字母,数字,汉字的字符了
    Exin
        5
    Exin  
       2016-04-01 14:47:15 +08:00
    @Kitayama 在\w 前加一个 '/'以及在后面加'/'是界定范围,后面的'/'之后的 g 是设定一种模式,将正则表达式内容放在两个'/'之间是 JS 的特定语法。
    另外这应该是用''替代任何单词字符(0-9|a-z|A-Z|_)吧?

    最后那个问题你写一段代码跑一跑不就知道了?
    kamal
        6
    kamal  
       2016-04-01 15:06:15 +08:00
    看,没有语法高亮多不方便

    Kitayama
        7
    Kitayama  
    OP
       2016-04-01 15:38:49 +08:00
    @Exin 谢谢!
    Kitayama
        8
    Kitayama  
    OP
       2016-04-01 15:39:06 +08:00
    @kamal 多谢!
    Exin
        9
    Exin  
       2016-04-01 15:41:16 +08:00
    @kamal 请问这是什么工具 /站点?
    kamal
        10
    kamal  
       2016-04-01 16:19:57 +08:00   ❤️ 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2408 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 16:11 · PVG 00:11 · LAX 08:11 · JFK 11:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.