2011-04-13 83 views
1

出于某种原因,这是行不通的,但我所有的搜索都说它应该工作。为什么这个JavaScript正则表达式不起作用?

我在那里我将尝试1.

递增值的元素ID让我们说,我有

<input id="someText1"> 

我想将1更改为2,所以我结束了

<input id="someText2"> 

我一直在努力,只是用

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

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

请帮助!

+2

我担心这种情况会让你觉得你必须这样做。你可以发布你的最终目标,以便我可以提供不同的方法吗? – 2011-04-13 16:36:47

回答

6

取出$符号(文字并以数字结尾,你是在告诉它,它以字母结尾)

+0

谢谢!那样做了! – Steve 2011-04-13 16:39:06

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

match选择必须完全相等的ID,并作为您的正则表达式匹配任何字符串只包含A-Z和A-Z,它不匹配someText1!你应该尝试

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

我会使用一个类名称选择,如$('.inputs')因为这将是比获得页面上的所有输入元素,然后通过ID过滤速度更快建议(在现代浏览器ESP)。

相关问题