【问题标题】:Why is this JavaScript regular expression not working?为什么这个 JavaScript 正则表达式不起作用?
【发布时间】:2011-04-13 16:32:08
【问题描述】:

由于某种原因,这不起作用,但我所有的搜索都表明它应该起作用。

我在尝试将值增加 1 的元素上有一个 id。

假设我有

<input id="someText1">

我想把 1 改成 2,所以我最终得到了

<input id="someText2">

我尝试只匹配文本使用

text = $("input").attr("id").match(/^[a-zA-Z]+$/);

但是当我输出文本的值时,我得到了 null

请帮忙!

【问题讨论】:

  • 我担心这种情况会让你觉得你必须这样做。您能否发布您的最终目标,以便我提供不同的方法?

标签: javascript jquery regex alpha


【解决方案1】:

删除$ 符号(文本确实以数字结尾,并且您告诉它它以字母结尾)

【讨论】:

    【解决方案2】:

    你的正则表达式应该是

    text = $("input").attr("id").match(/^[a-zA-Z0-9]+$/);
    

    你在追求这个吗?

    var text = $("input").attr("id").replace(/[0-9]+$/, "");
    var num = $("input").attr("id").replace(/^[a-zA-Z]+/, "");
    

    【讨论】:

      【解决方案3】:

      match 选择器必须与 ID 完全相同,因为您的正则表达式匹配任何仅包含 a-z 和 A-Z 的字符串,它不匹配 someText1!你应该试试

      ^[a-zA-Z]+[0-9]$
      

      【讨论】:

        【解决方案4】:

        我建议使用类名选择器,例如 $('.inputs'),因为它比获取页面上的所有输入元素然后按 id 过滤(尤其是在现代浏览器中)更快。

        【讨论】:

          猜你喜欢
          • 2011-11-17
          • 2014-02-04
          • 1970-01-01
          • 2013-12-05
          相关资源
          最近更新 更多