尝试验证评论框的输入以便仅接受文本,并在用户输入数字(1-0)或符号(@#$%^& * + _ =)时提醒消息。
是否有办法在html中执行此操作
答案 0 :(得分:0)
使用正则表达式确定可接受的内容
如果您需要标点符号,也可以在括号中添加
@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
public abstract class AbstractResourceRest<PK extends Serializable,
T extends IdentifiableEntity<PK>> implements IResourceRest<PK, T> {
public static final Logger LOGGER = LoggerFactory.getLogger(AbstractResourceRest.class);
private int maxPageSize = 500;
@Override
@GET
@Path("{id}")
public T find(@PathParam("id") PK id) throws DAOException {
T result = getGenericManager().find(id);
getGenericManager().done();
return result;
}
//todo: use CDI (hk2) instead ?
public abstract IRestManager<PK, T> getGenericManager();
@Override
@DELETE
@Path("{id}")
public void delete(@PathParam("id") PK id) throws DAOException {
System.out.println("DELETE OK");
getGenericManager().delete(id);
getGenericManager().done();
}
@Override
public long size() throws DAOException {
long result = getGenericManager().getSize();
getGenericManager().done();
return result;
}
@Override
@HEAD
public Response metadata() throws DAOException {
return Response.status(Response.Status.OK)
.header("X-Total-Item-Count", size())
.header("Access-Control-Expose-Headers", "X-Total-Item-Count, X-Total-Page-Count").build();
}
@Override
@GET
public Response findAll(@QueryParam("reverse") @DefaultValue("false") boolean reverse,
@QueryParam("pagenumber") @DefaultValue("-1") int pageNumber,
@QueryParam("perpage") @DefaultValue("-1") int perPage,
@QueryParam("limit") @DefaultValue("-1") int limit,
@Context UriInfo uriInfo) throws DAOException {
System.out.println("pageNumber = " + pageNumber);
Response response;
if (pageNumber == -1)
response=listToResponse(getGenericManager().findAll(reverse, limit), uriInfo)
.build();
else {
if (perPage < 0) perPage = getMaxPageSize();
LOGGER.info("pre findall");
Page result = getGenericManager().findAllByPage(reverse, pageNumber, perPage, limit);
LOGGER.info("post findall");
response = pageToResponse(result, uriInfo)
.build();
LOGGER.info("post response built");
}
getGenericManager().done();
return response;
}
protected Response.ResponseBuilder listToResponse(List<T> list, UriInfo uriInfo) throws DAOException {
//I try with : GenericEntity<List<T>> genericEntity = new GenericEntity<List<T>>(list){};
return Response.status(Response.Status.OK).entity(list);
}
protected Response.ResponseBuilder pageToResponse(Page page, UriInfo uriInfo) throws DAOException {
List<String> links = new ArrayList<>();
if (page.PAGE_NUMBER > 0) {
links.add("<" + uriInfo.getAbsolutePath() + "?pagenumber=0" + "&perpage=" + page.PAGE_SIZE + ">; rel=\"first\"");
links.add("<" + uriInfo.getAbsolutePath() + "?pagenumber=" + (page.PAGE_NUMBER + 1) + "&perpage=" + page.PAGE_SIZE + ">; rel=\"previous\"");
}
if (page.PAGE_NUMBER < page.TOTAL_PAGES - 1) {
links.add("<" + uriInfo.getAbsolutePath() + "?pagenumber=" + (page.PAGE_NUMBER + 1) + "&perpage=" + page.PAGE_SIZE + ">; rel=\"next\"");
links.add("<" + uriInfo.getAbsolutePath() + "?pagenumber=" + (page.TOTAL_PAGES - 1) + "&perpage=" + page.PAGE_SIZE + ">; rel=\"last\"");
}
return Response.status(Response.Status.OK).entity(page.content)
.header("Link", links.stream().collect(Collectors.joining(", ")))
.header("X-Total-Item-Count", page.TOTAL_ITEMS)
.header("X-Total-Page-Count", page.TOTAL_PAGES)
.header("Access-Control-Expose-Headers", "X-Total-Item-Count, X-Total-Page-Count");
}
@Override
@GET
@Path("ids")
public List<PK> getIds(@QueryParam("reverse") @DefaultValue("false") boolean reverse) throws DAOException {
List<PK> result = getGenericManager().getIds(reverse);
getGenericManager().done();
return result;
}
@Override
@PUT
@Consumes({"application/json"})
public T create(T item) throws DAOException {
T result = getGenericManager().create(item);
getGenericManager().done();
return result;
}
@Override
@PUT
@Path("collection")
@Consumes({"application/json"})
public int create(List<T> list) throws DAOException {
int result = getGenericManager().create(list);
getGenericManager().done();
return result;
}
@Override
@POST
@Consumes({"application/json"})
public T update(T t) throws DAOException {
T result = getGenericManager().update(t);
getGenericManager().done();
return result;
}
@Override
@DELETE
public int delete() throws DAOException {
System.out.println("DELETE");
int result = getGenericManager().deleteAll();
getGenericManager().done();
return result;
}
@Override
@GET
@Path("maxpagesize")
public int getMaxPageSize() {
return maxPageSize;
}
@Override
@PUT
@Path("maxpagesize")
public void setMaxPageSize(int pageSize) {
this.maxPageSize = pageSize;
}
}
答案 1 :(得分:0)
试试这个
function ValidatecommentForm()
{
var comment = document.form1.comment.value;
if(/[^a-zA-Z ]/.test(comment))
{
alert("please enter valid comment");
comment.focus();
return false;
}
else
return (comment === "")?"No comment was entered.\n":"";
}
答案 2 :(得分:-2)
我不是一个javascript程序员,但我能告诉你的是以下内容:
永远不要使用javascript验证内容! 验证(拉丁语):强大,有效,固定。
您希望实现的目标(至少在德国)我们称之为&#34; 预格式化(带有交互式提示)&#34;与验证完全不同,因为用户可以通过禁用js来停用它。我学会了把它称为预格式化,因为它不能与真正的验证混淆,这是一个非常重要的区别。
如果仅使用html(js)进行验证,则可以将脚本放入垃圾箱,然后再将其发布给公众。原因很简单:JS在客户端浏览器中工作,这意味着任何人都可以更改甚至阻止(例如,firefox的noscript)你的脚本工作。这会使您的脚本无效。验证数据是因为如果你没有正确地逃避他的输入,破解者可以劫持你的服务器,所以你应该采取这个序列,因为被劫持的服务器很快就会非常昂贵!它甚至可以摧毁你的整个生命,把你带进监狱,什么不是......
唯一的解决方案是使用服务器端解决方案来验证用户的任何数据!