2014-03-26 128 views
1

如何使用纯JavaScript而不是Jquery验证以下textarea?任何人都可以帮助我。Textarea with javascript validation

<script> 
function val() 
{ 
    // 1. only allowed alphanumeric characters, dash(-), comma(,) and no space 
    // 2. alert if person is trying to input not allowed chars as in 1. 
} 
</script> 

<form> 
    <textarea name="pt_text" rows="8" cols="8" class="input" onkeydown="return val();"></textarea> 
</form> 
+2

你有没有谷歌正则表达式为您的需要? –

+1

只是第2点的建议。当你说警报时,请不要使用实际的警报框。 – Smeegs

+1

为什么你不想使用jQuery? –

回答

0

此正则表达式仅匹配有效字符串:

/^[\w,-]*$/ 

使用+而不是*如果你不允许空字符串。

+2

'\ w'允许“_”。 – tenub

+0

啊,对。 '/^[ - \ w, - [_]] * $ /'如果支持字符类减法,否则'/^[a-zA-Z0-9, - ] * $ /'。 (无论如何,为了便于阅读,可能使用最后一个。) –

1

试着这么做:

document.querySelector('.input').onkeypress = function validate(e) { 
    if (String.fromCharCode(e.keyCode).match(/[\w,-]/) == null) { 
     alert('not allowed'); 
     e.preventDefault(); 
    } 
}; 

DEMO

编辑:正如tenub指出,\w还允许_,所以修改正则表达式:/[A-Za-z0-9,-]/

DEMO