什么是替换回车换行和水平制表符的正则表达式?



我使用包含表内容的参数生成了一个get URL。但是,我注意到URL中有许多不希望发送的字符。

这些我已经确定为回车,新行和水平制表符。在发送表单提交数据之前,我如何从文本中删除它们?

生成的URL

Stock/BuyServlet?tradeDetail=%0D%0A++++++%09TFSCU%0D%0A++++++%091347+Capital+Corp.%0D%0A++++++%0910.27%0D%0A++++++%09%2442.93M%0D%0A++++++&qty=10

我真正想要的是:

Stock/BuyServlet?tradeDetail=TFSCU%2C1347+Capital+Corp.%2C10.27%2C%2442.93M&qty=10

传递的数据是:

tradeDetail=TFSCU   1347 Capital Corp.  10.27   $42.93M
qty=10

数据由Java httpservlet处理。

我无法在javascript代码中删除表单提交前的特殊字符。然而,当我在servlet中收到详细信息时,我执行了以下字符串操作来解决我的问题。

我已经发布了整个代码块,使它更有意义-

    Enumeration<String> em = request.getParameterNames();
    HashMap<String, String> map = new HashMap<String,String>();
    if(em == null)
    {
        System.out.println("all is lost");
    }
    while (em.hasMoreElements()) {
        String params = (String) em.nextElement();
        if(params.equalsIgnoreCase(txn_detail) || params.equalsIgnoreCase("qty"))
        {
            String value = request.getParameter(params);
            if(params.equalsIgnoreCase(txn_detail))
            {
                /* This fixed it */
                params = params.replaceAll("[\r\n\t]", " ");
                params = params.replaceAll("  ", " ");
                /* end of fix */
            }
            map.put(params, value);
        }
    }

最新更新