Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有预定义域名的主机名的Javascript验证代码_Javascript_Whmcs - Fatal编程技术网

具有预定义域名的主机名的Javascript验证代码

具有预定义域名的主机名的Javascript验证代码,javascript,whmcs,Javascript,Whmcs,我有一个订单,要求用户输入他的服务器主机名。由于我使用的是WHMCS,并且几乎所有的php代码都是使用IonCube加载程序加密的,因此我试图找到一种添加自定义验证检查的方法,如下所示: 用户可以输入他喜欢的任何主机名,如user1.abc.com等。 我希望能够做到,无论用户在服务器主机名字段中输入什么,最终结果都是user1.domain.com,其中domain.com是我正在使用的域,因为一旦创建容器/vm,就会自动创建DNS条目 是否可以使用javascript添加这样的检查?我必须说

我有一个订单,要求用户输入他的服务器主机名。由于我使用的是WHMCS,并且几乎所有的php代码都是使用IonCube加载程序加密的,因此我试图找到一种添加自定义验证检查的方法,如下所示:

用户可以输入他喜欢的任何主机名,如user1.abc.com等。 我希望能够做到,无论用户在服务器主机名字段中输入什么,最终结果都是user1.domain.com,其中domain.com是我正在使用的域,因为一旦创建容器/vm,就会自动创建DNS条目

是否可以使用javascript添加这样的检查?我必须说,WHCMS在订单中使用.tpl模板文件

我想到的是这样一个正则表达式:

/^[a-z\d]([a-z\d\-]{0,61}[a-z\d])?(\.[a-z\d]([a-z\d\-]{0,61}[a-z\d])?)*$/i
/^[a-z\d]([a-z\d\-]{0,61}[a-z\d])?(\.\b(domain.com)\b)/
问题是上面的正则表达式进行了一个通用的主机名验证,这很好,但我特别需要它用于domain.com


更具体地说,如果用户输入user1.abc.com,表单将自动更正,user1.abc.com将更改为user1.domain.com

您可以将domain添加为单词,如下所示:

/^[a-z\d]([a-z\d\-]{0,61}[a-z\d])?(\.[a-z\d]([a-z\d\-]{0,61}[a-z\d])?)*$/i
/^[a-z\d]([a-z\d\-]{0,61}[a-z\d])?(\.\b(domain.com)\b)/

如果用户输入
user1.abc.co.uk
,会发生什么情况?或者类似于
user1.user2.abc.com
结果应该是什么?我想要的是,无论用户想要什么,最终的主机名都会像user1.domain.com,其中domain.com应该总是相同的,无论什么…@BogdanStoica,好的,那很好,但是你怎么知道用户的名字和他在哪里键入他的域?您对用户名中的点有限制吗?或者其他一些规则?此时没有任何规则,表单要求输入主机名,主机名的格式应为host.domain.tld。这里的问题是,用户,即使提到主机名应该是那种格式,并且强制域是domain.com,他们通常输入像user1或user1.abc.com这样的内容,而不是user1.domain.com等等。因为所有的代码都是加密的,所以我不能编辑任何php文件,所以我必须找到另一种方法(而且我没有该WHMC的管理员权限)但我确实可以通过FTPIn访问所有文件。最后,通过在表单中的输入字段中添加模式属性,我成功地以比预期更简单的方式访问了所有文件:
。这会进行自动验证,如果输入的不是user1.domain.com,它会抛出一条消息来插入正确的主机名。我想OP想要的是将
abc.com
部分交换给
domain.com
@Luca,我想这个正则表达式仍然需要。检查用户是否已写入.domain.com。剩下的只是解析我尝试过的字符串,但据我所知,代码只验证了something.domain.tld格式的主机名。如果我输入某物,什么都不会发生。也许我弄错了…@BogdanStoica,是的,这只是验证。所以,您想在字符串未通过验证后对其进行分析?当然,您不能用正则表达式更改字符串