仅使用html验证评论框中的输入

时间:2016-03-31 17:23:46

标签: html

尝试验证评论框的输入以便仅接受文本,并在用户输入数字(1-0)或符号(@#$%^& * + _ =)时提醒消息。

是否有办法在html中执行此操作

3 个答案:

答案 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; } }

fiddle

答案 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)你的脚本工作。这会使您的脚本无效。验证数据是因为如果你没有正确地逃避他的输入,破解者可以劫持你的服务器,所以你应该采取这个序列,因为被劫持的服务器很快就会非常昂贵!它甚至可以摧毁你的整个生命,把你带进监狱,什么不是......

唯一的解决方案是使用服务器端解决方案来验证用户的任何数据!