我想在Android Java中验证此NIC编号。

NICs=NIC.getText().toString();
if((nameS.equals("")||NICs.equals(""))||!(NICs.matches("/^[0-9]{9}[vVxX]$/")))
{
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
            this);

        // set title
        alertDialogBuilder.setTitle("Warning!");

        // set dialog message
        alertDialogBuilder
            .setMessage("Please fill the above feilds !")
            .setCancelable(false)

            .setNegativeButton("OK",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    // if this button is clicked, just close
                    // the dialog box and do nothing
                    dialog.cancel();
                }
            });


我的NIC =“ 896201328V”
但是它说NIC与给定的模式不匹配。

最佳答案

从代码中删除refex分隔符/,因此请使用:

NICs.matches("[0-9]{9}[vVxX]")


代替:

NICs.matches("/^[0-9]{9}[vVxX]$/")


PS:String#matches方法中也不需要锚。

09-04 02:33