繁体   English   中英

如何删除子域中的非法字符?

[英]How do I remove illegal characters in a subdomain?

我正在使用Java6。我使用Amazon AWS库动态创建域。 但是,我正在寻找可以从子域中删除非法字符的函数。 例如,如果我要创建函数

dave'ssite.mydomain.com

我想将字符串“ dave'ssite”传递给某个函数,该函数将去除撇号或潜入子域的任何其他非法字符。

我该怎么办? 更具体的问题是,如何识别非法子域字符是什么?

子域与域相同,因此最有可能允许的字符为AZ az 0-9 and - 您可以使用Regex。

...
String s = "dave's-site.mydomain.com";

//prints daves-sitemydomaincom
System.out.println(s.replaceAll("[^A-Za-z0-9\\-]","")); 
...

这是我为游戏制作的。 除了使用它从用户名中删除无效字符外,其基本相同。

char[] validChars = {a, b, c, d, etc...};//Put all valid characters in this array, so for subdomains put all letters and numbers
public static String cleanString(String text){
    StringBuilder sb = new StringBuilder("");
    for(int i = 0;i < text.length();i++){
        for (int j = 0; j < validCharslength; j++) {
            if (validChars[j] == text.charAt(i)) {
                sb.append(text.charAt(i));
                break;
            }
        }
    }
    return sb.toString();
}

正如我在代码中的注释所说,char数组包含所有有效字符,其他所有内容都将被删除。 请记住,他是返回方法。

我在这里偶然发现了针对同一个问题的ac#解决方案,好在这里。 看看c#LINQ如何做到这一点;)

if (model.UserName.All(char.IsLetterOrDigit) && !model.UserName.StartsWith("-")) 
{ 
    //oh yeah, valid subdomain     
}

虽然不确定规格说明了什么长度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM