开发者

Why is this JavaScript regular expression not working?

For some reason this is not working, yet all my searches say it should work.

I have a开发者_如何学运维n id on an element where I am trying to increment the value by 1.

so let's say I have

<input id="someText1">

I want to change the 1 to a 2, so I end up with

<input id="someText2">

I've tried to match just the text using

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

But when I output the value of text, I get null

Please help!


Remove the $ sign (the text does end with a number and you're telling it that it ends with a letter)


Your regular expression should be

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

Are you after this?

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


The match selector must equal the ID exactly, and as your regex matches any string containing ONLY a-z and A-Z, it doesn't match someText1! You should try

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


I would suggest using a class name selector, such as $('.inputs') as it will be faster than getting all the input elements on the page and then filtering by id (esp. in modern browsers).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜