我正在创建一个网页,其中我有一个输入文本字段,其中我只允许字母,点和空格,如" a b.c"。
连续的单词/字符之间允许使用空格和点,但不允许使用两个连续的空格或点。
允许: - " abc def.xyz"
不允许: - " abc def..xyz"
如何使用jQuery执行此操作?
答案 0 :(得分:1)
您可以使用以下模式。它只允许字母,点和空格
$(function()
{
$('#username').keydown(function(er)
{
if(er.altKey||er.ctrlKey||er.shiftKey)
{
er.preventDefault();
}
else
{var key=er.keyCode;
if(!((key==8)||(key==9)||(key==32)||(key==46)||(key>=65 && key<=90)))
{
er.preventDefault();
alert("please enter only alphabets")
}
}
}); });
否则使用防止默认方法
public static void schedule(IEntity entity, Date startdate) {
try {
JobDetail job = JobBuilder.newJob(StatingUpdateJob.class)
.withIdentity("UpdateStagingRecords" + entity.getId(), "StgToProduction").build();
JobDataMap data = new JobDataMap(new HashMap<>());
data.put("Entity", entity);
job.getJobBuilder().setJobData(data);
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
Date enddate = new Date();
enddate.setTime(startdate.getTime() + 6000000);
CronTrigger cronTrigger = TriggerBuilder.newTrigger()
.withIdentity("UpdateStagingRecords" + entity.getId(), "StgToProduction").startAt(startdate)
.withSchedule(CronScheduleBuilder.cronSchedule("0 0/5 * 1/1 * ? *")
.withMisfireHandlingInstructionDoNothing())
.endAt(enddate).build();
Connection connection = DBConnectionManager.getInstance().getConnection("myDS");
System.out.println(connection);
scheduler.scheduleJob(job, cronTrigger);
scheduler.start();
} catch (Exception e) {
System.out.println("Something went wrong");
e.printStackTrace();
}
}
答案 1 :(得分:1)
经过一番搜索,我找到了答案。
我们可以使用下面的正则表达式来实现这一点。
/ ^([\ S。] [A-ZA-Z] +)+ $ /
完成jQuery功能: -
<script>
$(document).ready(function () {
$("input[type='text']").each(function () {
$(this).blur(function (e) {
if (Validate(this.id)) { }
else { alert('invalid input'); }
});
});
function Validate(evt) {
var isValid = false;
var regex = /^([\s\.]?[a-zA-Z]+)+$/;
isValid = regex.test($("#" + evt).val());
return isValid;
}
});
</script>
答案 2 :(得分:0)
您应该找到符合您偏好的正则表达式。
然后你应该创建一个函数,在使用regexp test检查输入的keyup上触发。