【发布时间】:2016-06-09 10:28:08
【问题描述】:
我找到了这个函数来检查一个字符串是否只包含字母数字字符:
function test ( value ) {
if( value.match("^[a-zA-Z0-9]*$")){
alert('ok');
}
}
test( 'Somevalue123' );
现在我想改进上述功能以允许其他一些“特殊字符”,例如:
(empty space)
' (single quote)
- (hyphen)
èàùìòÈÀÒÙÌéáúíóÉÁÚÍÓëäüïöËÄÜÏÖêâûîôÊÂÛÎÔç
还有一些符号,比如:
'_', '&', '.', ',', ':', '(', ')', '[', ']', '/', '+', '=', '?', '#', '@'
所以我尝试更新它并且我能够这样做:
function test ( value, numbers, symbols ) {
numbers = ( typeof numbers === 'undefined' ) ? 0 : 1; // default numbers not allowed
symbols = ( typeof symbols === 'undefined' ) ? 0 : 1; // default symbols not allowed
value = value.replace(/è|à|ù|ì|ò|È|À|Ò|Ù|Ì|é|á|ú|í|ó|É|Á|Ú|Í|Ó|ë|ä|ü|ï|ö|Ë|Ä|Ü|Ï|Ö|ê|â|û|î|ô|Ê|Â|Û|Î|Ô|ç/g, '' ); // remove allowed characters before check
// value = value.replace(/...???.../g, '' ); allow white space, single quote and symbols?
if( numbers == 1 && value.match("^[a-zA-Z0-9 ]*$")){ alert('ok'); } // number allowed
else if( value.match("^[a-zA-Z ]*$")){ alert('ok'); } // number not allowed
}
不确定如何允许空格、单引号和符号(Regex 或 value.replace() 对我来说是一样的)。
【问题讨论】:
-
在字符类中添加所有这些字符。
-
对于空格使用 \s ,符号引号使用 \' ,连字符 \- 以及您可以在字符类中包含的所有其他字符,如@Toto 所说,表示 [ 和 ]。
标签: javascript regex string validation