我正在尝试创建一个正则表达式,除了,
,.
之外不允许任何特殊字符,它们不应该并排。
例如:应接受STax.sdn,skm
,而SDs,.Hnj
应抛出错误消息。我使用了以下代码,但它并排接受,
和.
并不是我想要的。
function validateAnnouncementTags(){
var announcementTags = document.getElementById("announcementTags").value;
if (announcementTags.search(/[<>'+\"\/`\\\[\]^={}%;@#!$&*()?:|]/)>-1 ) {
$('#announcementTagsSpecialCharError').addClass('show');
} else {
$('#announcementTagsSpecialCharError').addClass('hide');
$('#announcementTagsSpecialCharError').removeClass('show');
}
}
答案 0 :(得分:1)
使用此模式:
/^(?!.*[\.,])/
答案 1 :(得分:0)
根据您的评论,我假设您要接受以句号或逗号分隔的任何字母。我们怎么样:
我们可以使用
function validateAnnouncementTags() {
var announcementTags=document.getElementById("announcementTags").value;
if (announcementTags.match(/[a-zA-Z\.,]*/)[0] != annoucementTags
|| announcementTags.search(/[\.,][\.,]/) >= 0
) {
$('#announcementTagsSpecialCharError').addClass('show');
} else {
$('#announcementTagsSpecialCharError').addClass('hide');
$('#announcementTagsSpecialCharError').removeClass('show');
}
}
但是,如果我可以大胆地假设更多的结构符合您可接受的语法:
然后我们可以使用:
function validateAnnouncementTags() {
var announcementTags=document.getElementById("announcementTags").value;
if (announcementTags.match(/([a-z0-9]+[\.,]?)*/)[0] != annoucementTags ) {
$('#announcementTagsSpecialCharError').addClass('show');
} else {
$('#announcementTagsSpecialCharError').addClass('hide');
$('#announcementTagsSpecialCharError').removeClass('show');
}
}