Ademas de que deberías checar todo el string, de lo contrario no funcionará como deseas, la expresión debería quedar así:
Código Javascript
:
Ver originalvar regexp = /^[\w]{1,30}$/i;
regexp.test("abc"); //true
regexp.test("abc%+"); //false
Nota el simbolo ^ y $ en la expresión regular ;)
Saludos