我想我的正则表达式有问题:我想要一个字符串,它可以包含第一个圆括号中的所有字符,最后是 [,最后是 ]。正则表达式如下:
var pattern = /^(([a-zA-Z0-9\.\_\-\(\)\\'\xE0\xE8\xE9\xF9\xF2\xEC\x27\,\/]\s?)*\[?([a-zA-Z0-9\.\_\-\(\)\\'\xE0\xE8\xE9\xF9\xF2\xEC\x27\,\/]\s?)*\]?)+$/;
问题是如果我尝试测试以下字符串 Maionese [dfvdfv]@ 我的程序将永远循环:-|
我用来测试的功能如下:
//the alert doesn't works
alert(checkSpecialIngredienti("Maionese [dfvdfv]@"));
function checkSpecialIngredienti(s) {
var pattern = /^(([a-zA-Z0-9\.\_\-\(\)\\'\xE0\xE8\xE9\xF9\xF2\xEC\x27\,\/]\s?)*\[?([a-zA-Z0-9\.\_\-\(\)\\'\xE0\xE8\xE9\xF9\xF2\xEC\x27\,\/]\s?)*\]?)+$/;
if (!pattern.test(s)) {
alert("Attenzione, il campo "+s+"" +
" che hai inserito non va bene!" +
"\nIn questo campo puoi inserire " +
"lettere, numeri, lettere accentate," +
"punteggiatura classica, singoli spazi e" +
"\nuna sola coppia di parentesi quadre." +
"\nRiprova!");
return (false);
} else
return true;
}