【问题标题】:Javascript RegEx to replace single underscores with a string of underscoresJavascript RegEx 用一串下划线替换单个下划线
【发布时间】:2014-02-28 01:25:30
【问题描述】:

我有一个文本区域,用户可以在其中输入下划线。我想将他们键入的下划线转换为 10 个下划线的字符串。我希望在他们输入时实时完成。

_ => ____

我曾认为我可以做一些简单的事情:

开键: textarea.value.replace(/_*/g, "____");

我的想法是它会匹配任何下划线字符串并自动将它们转换为 10 个下划线。

不过,我的行为真的很奇怪。键入下划线会产生 20 个下划线。此外,它似乎与我键入的任何字符的左右匹配。例如,如果我输入“A”,我会得到:

___A___

有人知道如何让它正常工作吗?看起来很简单,但我很难过。谢谢。

【问题讨论】:

  • 看起来我在上面输入的下划线被缩短了。在上面的帖子中,任何大于 1 个字符的下划线字符串都意味着 10 个字符。

标签: javascript html regex textarea


【解决方案1】:

使用/_+/ 而不是/_*/。正则表达式中的 * 匹配零个或多个字符,因此它匹配下划线后的空字符串并将其替换为 10 个下划线。 + 匹配一个或多个。

【讨论】:

    【解决方案2】:

    将您的模式更改为 /_{1,}/ 这将匹配 _ 或 _ ,您之前的模式匹配 _ 以及之后的任意数量的字符。

    【讨论】:

    • err,我错过了阅读这个问题,你想将 _ 更改为 _x10 但你为什么要这样做:) 你想要的模式是 /_{1}/ 这将匹配一个找到并且用 /g 修饰符替换你的 _________ 等,你会得到每个匹配项并替换它。
    • 我的目标是让用户在空白句子中输入一个填充字。与其依靠他们为空白输入一堆下划线,我认为自动扩展下划线字符会更容易。它还可以确保所有空格的长度相等。
    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    相关资源
    最近更新 更多