为什么这个JavaScript正则表达式不起作用?

时间:2011-04-13 16:32:08

标签: javascript jquery regex alpha

出于某种原因,这不起作用,但我的所有搜索都说它应该有效。

我在一个元素上有一个id,我试图将该值递增1。

所以让我说我有

<input id="someText1">

我想将1改为2,所以我最终得到了

<input id="someText2">

我尝试使用

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

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

请帮忙!

4 个答案:

答案 0 :(得分:6)

删除$符号(文本以数字结尾,你告诉它以字母结尾)

答案 1 :(得分:0)

你的正则表达式应该是

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]+/, "");

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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