javascript正则表达式中奇怪的空格

 于俊毅智文建志 发布于 2023-02-10 12:03

我在javascript中看到了这个奇怪的正则表达式.

string = "abababababababa";
string=string.replace(/ ?a ?/g,"X");
alert(string);  

我跑了,我得到的输出全部被X取代.令人费解的是正则表达式中的白色空格.我删除了第一个空格,脚本将无法运行.我删除了第二个空白区域,我将一个"a"替换为两个"X".我想知道它是如何工作的.

1 个回答
  • 该空间实际上意味着匹配空格字符(U + 0020).

    关键是跟随每个模型的?量词,允许模式为每个模式匹配" 0或1个空格 ",从而使它们成为可选项.

    因此,该/ ?a ?/模式能够匹配:

    "a"

    "a "

    " a"

    " a "

    并且,尝试删除任一空格将改变模式的含义:

    删除前导空格(/?a ?/g)实际上会导致SyntaxError量词需要在量化之前进行量化.

    删除尾随空格(/ ?a?/g)在语法上是有效的,但?量词将适用于a,将可能的匹配更改为:

    ""

    "a"

    " "

    " a"

    2023-02-10 12:06 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有