首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除子域中的非法字符?

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

Stack Overflow用户
提问于 2014-09-17 23:15:28
回答 3查看 827关注 0票数 0

我使用的是Java 6。使用Amazon AWS库,我可以动态创建域名。然而,我正在寻找一个功能,可以剥离非法字符从子域名。例如,如果我的函数将要创建

代码语言:javascript
复制
dave'ssite.mydomain.com

我想把字符串“dave‘’ssite”传递给某个函数,这个函数会去掉撇号,或者其他任何潜伏在子域中的非法字符。

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

EN

回答 3

Stack Overflow用户

发布于 2014-09-17 23:25:49

子域与域相同,因此最可能允许的字符是A-Z a-z 0-9 and -。因此,您可以使用Regex。

代码语言:javascript
复制
...
String s = "dave's-site.mydomain.com";

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

Stack Overflow用户

发布于 2014-09-18 00:18:54

这是我为一个游戏做的一些东西。它基本上是一样的东西,除了我用它来删除用户名中的无效字符。

代码语言:javascript
复制
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数组包含所有有效字符,其他任何字符都将被删除。请记住,his是一个返回方法。

票数 0
EN

Stack Overflow用户

发布于 2015-04-07 14:43:40

我在这里偶然发现了一个c#解决方案来解决同样的问题,而它就在这里。看看c# LINQ是如何做到这一点的;)

代码语言:javascript
复制
if (model.UserName.All(char.IsLetterOrDigit) && !model.UserName.StartsWith("-")) 
{ 
    //oh yeah, valid subdomain     
}

不过,我不确定规范中对长度有什么规定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25894359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档