第一次尝试写一个正则表达式 我正在尝试创建一个匹配1234567-89-0234的格式 我创建的正则表达式是; / ^([0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] - [0-9] [0-9] - [0-9] [0-9] [0-9] [0-9])$ / 然而,它仍然是假的,也许它在我的脚本中也是一个错误
function showAnamneseFisico()
{
function nullCheck() {
var y = /^([0-9][0-9][0-9][0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9][0-9][0-9])$/;
var x = $("#nidNumber");
for (i = 0; i < x.length; i++)
if (x[i].test(y) === false){
return 0;
}
}
if (nullCheck() === 0) {
alert ('Você ainda não tenham completado o preenchimento da tabela de Numeros NID. Faz favor, verifique que você respondeu a cada pergunta e submeter mais uma vez.');
}
else if ($("#formNotCompleteResponse").val() === ''){
alert ('Você ainda não tenham completado o preenchimento porque você não prover um razão que nao fez todo deste formulário. Faz favor, prover uma resposta a esse pergunta e submeter mais uma vez.');
}
else {
$("#anamneseFisico").show();
$("#buttonExame").show();
$("#buttonNid").hide();
}
}
答案 0 :(得分:1)
问题是-
的转义只是[]
内的特殊字符。
另一方面,包装支架是不必要的。
以下是较短版本:^\d{7}-\d{2}-\d{4}$
答案 1 :(得分:0)
所以,正确的方法是:
/\d{7}-\d{2}-\d{4}/.test("string"); //returns a boolean - would match the pattern in a string.
如果您想要严格匹配,例如仅限图案,则:
/^\d{7}-\d{2}-\d{4}$/.test("string");
或者
"string".match(/\d{7}-\d{2}-\d{4}/); //returns an array of matches or null
"string".match(/^\d{7}-\d{2}-\d{4}$/); //pattern only match
因此,您的代码变为:
function nullCheck() {
var y = /\d{7}-\d{2}-\d{4}/; // or /^\d{7}-\d{2}-\d{4}$/
var x = $("#nidNumber");
return y.test(x.val()); // returns true or false
}