我需要验证手机和电子邮件在Android应用程序中编辑文本。
电子邮件文字我希望它与熟悉的电子邮件语法“example@gmail.com”匹配
手机短信我希望它像这样的“xxx-xxx-xxxx”,其中x只是数字
我希望验证发生在OnFocusChangeListener
EmailTxt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFoucs) {
if(!hasFoucs){
Email = EmailTxt.getText().toString();
if (!Email.matches("^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$")){
EmailTxt.setBackgroundColor(Color.parseColor("#FFBABA"));
Toast.makeText(ctx,"Email should be 10 numbers",Toast.LENGTH_LONG).show();
flag_email = 0;
}
else {
EmailTxt.setBackgroundColor(Color.WHITE);
flag_email =1;
}
} else {
EmailTxt.setBackgroundColor(Color.WHITE);
}
}
});
对于电子邮件,我试过这个
function getPrice(today, callback){
var url;
var username = 'some username';
var password = 'some password';
url = 'some url'+ createTimeString(today);
var options = {
host: 'some host',
path: url,
auth: username + ':' + password
};
https.get(options, function(res){
res.setEncoding('utf8');
var body = '';
res.on('data', function(d) {
body += d;
var obj = JSON.parse(body);
console.log(obj);
callback(obj.Entries[0].EntryPx);
});
res.on("end", function () {
//console.log(body);
});
res.on('error', function(e) {
context.fail("Got error: " + e.message);
});
});
}
getPrice(today, function(result) {
curr_price = result;
speechOutput = "The curr price is " + curr_price.toString();
//rest of code
});
如果可以将表达式放在matches()中而不是使用其他方法,那么它将更适合我。
答案 0 :(得分:0)
https://github.com/thyrlian/AwesomeValidation
使用此库执行验证。
另见: https://developer.android.com/reference/android/util/Patterns.html
Android中的模式。
希望这有帮助。