一种字符校验方法及装置与流程

文档序号:14950632发布日期:2018-07-17 22:28阅读:210来源:国知局

本申请涉及互联网技术领域,尤其涉及一种字符校验方法及装置。



背景技术:

客户端在为用户预订机票时,需要用户输入姓名、身份证号等信息。一些用户的姓名中会出现生僻字,有些航空公司规定若用户姓名中包含生僻字,则需要将姓名从第一个生僻字开始用拼音表示,比如,如图1所示,用户姓名“王喆敏”中,“喆”为生僻字,则需要输入用户姓名为“王zhemin”。

若用户不知道自己的姓名中包含生僻字,会将包含有生僻字的姓名填写在客户端中,此时客户端需要自动为用户进行姓名的字符转换。一般地,客户端本地会存放一份生僻字表,在接收到用户输入的姓名后,通过遍历生僻字表中的生僻字,来验证该姓名中是否包含生僻字。

采用上述客户端预置生僻字表的方式会经常出现漏掉生僻字的情况,导致验证结果不准确。这是因为,航司的要求会发生改变,客户端维护的生僻字表很难覆盖航司要求的所有生僻字,另一方面,不同航司使用的合法字符集不一样,比如有的航司使用的是gb2312的中文字符集,有的航司使用的是gbk的中文字符集,不同航司对于生僻字的定义不一样,因此统一使用客户端维护的生僻字表来进行生僻字验证很有可能会出现验证结果,不符合航司要求的情况出现。



技术实现要素:

本申请实施例提供一种字符校验方法及装置,用以解决现有的生僻字校验存在的验证准确率低的问题。

本申请实施例提供一种字符校验方法,包括:

客户端在用户选择进入下单页面时,向服务器发起第一请求;所述第一请求用于请求获取下单页面的页面信息以及用户选择的服务供应方支持的第一合法字符集标识;

接收所述服务器返回的所述服务供应方支持的第一合法字符集标识和所述下单页面的页面信息;

基于所述页面信息,显示下单页面,并接收用户在该下单页面输入的待校验字符;

根据所述待校验字符的字符编码,以及所述第一合法字符集标识对应的字符编码范围,确定所述待校验字符的合法性。

可选地,所述客户端根据以下步骤确定所述第一合法字符集标识对应的字符编码范围:

根据预先存储的不同的合法字符集标识与字符编码范围之间的映射关系,确定所述第一合法字符集标识对应的字符编码范围。

可选地,根据所述待校验字符的字符编码,以及所述第一合法字符集标识对应的字符编码范围,确定所述待校验字符的合法性,包括:

采用预设的编码函数,将所述待校验字符转换为字符编码;

判断转换后的字符编码是否在所述字符编码范围内;

若转换后的字符编码不在所述字符编码范围内,则确定所述待校验字符不合法。

可选地,所述方法还包括:

在确定所述待校验字符不合法后,向所述服务器发送第二请求,所述第二请求用于请求将所述待校验字符转换为合法的字符;

接收所述服务器返回的合法的字符;

将所述合法的字符展示在所述下单页面中,以便根据用户指示发起下单请求。

可选地,所述下单页面为机票下单页面;待校验字符为汉字字符,所述合法的字符为拼音。

本申请实施例还提供一种字符校验方法,包括:

服务器接收客户端发送的第一请求;所述第一请求用于请求获取下单页面的页面信息以及用户选择的服务供应方支持的第一合法字符集标识;

基于所述第一请求,确定所述服务供应方支持的第一合法字符集标识,以及所述下单页面的页面信息;

向所述客户端发送所述第一合法字符集标识和所述下单页面的页面信息,以便所述客户端基于所述页面信息生成下单页面,并根据所述第一合法字符集标识验证用户在所述下单页面输入的待校验字符的合法性。

可选地,所述服务器确定所述服务供应方支持的第一合法字符集标识,包括:

向所述服务供应方发送合法字符集查询请求;

接收所述服务供应方反馈的第一合法字符集标识。

可选地,向所述客户端发送所述第一合法字符集标识和所述下单页面的页面信息之后,还包括:

接收所述客户端发送的第二请求,所述第二请求用于请求将所述待校验字符转换为合法的字符;

根据预存的字符转换库,将所述待校验字符转换为合法的字符;

将所述合法的字符返回给所述客户端,以便所述客户端基于所述合法的字符发起下单请求。

本申请实施例还提供一种字符校验的客户端,包括:

发送模块,用于在用户选择进入下单页面时,向服务器发起第一请求;所述第一请求用于请求获取下单页面的页面信息以及用户选择的服务供应方支持的第一合法字符集标识;

接收模块,用于接收所述服务器返回的所述服务供应方支持的第一合法字符集标识和所述下单页面的页面信息;

处理模块,用于基于所述页面信息,显示下单页面,并接收用户在该下单页面输入的待校验字符;根据所述待校验字符的字符编码,以及所述第一合法字符集标识对应的字符编码范围,确定所述待校验字符的合法性。

本申请实施例还提供一种字符校验的服务器,包括:

接收模块,用于接收客户端发送的第一请求;所述第一请求用于请求获取下单页面的页面信息以及用户选择的服务供应方支持的第一合法字符集标识;

处理模块,用于基于所述第一请求,确定所述服务供应方支持的第一合法字符集标识,以及所述下单页面的页面信息;

发送模块,用于向所述客户端发送所述第一合法字符集标识和所述下单页面的页面信息,以便所述客户端基于所述页面信息生成下单页面,并根据所述第一合法字符集标识验证用户在所述下单页面输入的待校验字符的合法性。

采用本申请实施例,客户端本地无需预置生僻字库,可以在进入下单页面时,向服务器动态请求获取用户选择的服务供应方支持的合法字符集标识,然后确定该合法字符集标识对应的字符编码范围,根据用户输入的待校验字符的字符编码是否位于该字符编码范围内来确认待校验字符的合法性。由于从服务器获取的是服务供应方当前实际支持的合法字符集标识,从而可以保证验证结果的准确性,另外,通过比较待校验字符的字符编码是否位于合法的字符编码范围内来确认待校验字符的合法性,计算方式简单快捷,也无需存储大量的生僻字,节省了存储空间。

附图说明

图1生僻字校验示意图;

图2为本申请实施例一提供的字符校验方法流程图;

图3为本申请实施例二提供的字符校验方法流程图;

图4为本申请实施例提供的字符校验的客户端结构图;

图5为本申请实施例提供的字符校验的服务器结构图。

具体实施方式

本申请实施例应用于需要对用户输入的字符进行合法性校验的场景,尤其在机票预订场景下,需要对用户姓名进行生僻字校验,若校验出用户姓名中包含生僻字,则至少需要将姓名中的生僻字转换为拼音,一般地,是将姓名中从生僻字开始的汉字都转换为拼音。

下面结合说明书附图对本申请实施例作进一步详细描述。

实施例一

如图2所示,为本申请实施例一提供的字符校验方法流程图,包括以下步骤:

s201:客户端在用户选择进入下单页面时,向服务器发起第一请求;该第一请求用于请求获取下单页面的页面信息以及用户选择的服务供应方支持的第一合法字符集标识。

在具体实施中,客户端发起第一请求可以指在用户选择好相关服务信息(包括服务供应方信息)后发起的。比如,用户使用客户端预订机票时,先输入始发地、目的地、以及出发时间,然后点击搜索,服务器会为客户端返回一些简单的航班信息,包括航空公司信息、航班号、起航和到达时间等,在用户选择好一个航班,点击进入该航班的详情页后,用户可以选择预订的机票的其它信息,比如代理商和舱位,然后进入下单页面,此时客户端发起所述第一请求,这里第一请求中可以携带用户选择好的航班信息。

s202:服务器基于所述第一请求,确定与所述服务供应方对应的第一合法字符集标识,以及所述下单页面的页面信息。

这里,服务器在接收到客户端的第一请求后,可以向服务供应方发送合法字符集查询请求,并接收服务供应方反馈的第一合法字符集标识。

比如,若上述下单页面为机票下单页面,服务供应方为航空公司,第一合法字符集标识即为航空公司返回的汉字编码字符集gb2312或gbk或其它汉字编码字符集。

这里,用于生成下单页面的页面信息中包含服务器在接收到第一请求之后从服务供应方查询到的页面信息(可以是在请求上述合法字符集的同时向服务供应方请求的),还可以包含服务器在接收到客户端的第一请求之前就已经确定的信息。

比如,在用户开始搜索航班时,服务器就会确定(从航空公司请求)一些简单的航班信息,如航空公司信息、航班号、起航和到达时间、起飞和降落的机场信息、价格信息等,在用户选择好一个航班,进入该航班的详情页后,选择预订的其它机票信息,比如代理商和舱位,然后用户点击进入下单页面,此时客户端发起第一请求,用于请求获取下单页面的页面信息以及用户选择的航空公司支持的合法字符集标识,服务器再向用户选择的航空公司系统发起查询请求,查询该航空公司的合法字符集标识,以及其它更详细的机票信息,比如保险、其它套餐信息等,然后将下单页面的页面信息以及用户选择的航空公司支持的合法字符集标识一起发送给客户端。这里,本申请实施例对服务器从航空公司获取合法字符集标识的时机不做具体限定,服务器除了在接收到第一请求后,从航空公司获取到合法字符集标识外,还可以在用户选择好航班,还未点击进入下单页面之前就获取用户选择的航空公司的合法字符集标识,比如,在用户选择好一个航班,进入航班的详情页时。

s203:服务器向客户端发送确定的第一合法字符集标识和下单页面的页面信息。

s204:客户端基于所述页面信息,生成并显示下单页面,并接收用户在该下单页面输入的待校验字符。

这里,客户端根据服务器返回的页面信息生成下单页面,其中可以有指示用户输入姓名、身份证号的指示信息。在机票预订场景下,上述待校验字符即指用户的姓名,也即待校验的汉字字符。另外,这里的下单页面可以包含子页面,比如,下单页面的主页面中可以包含添加/修改乘积人的指示按钮,在用户点击该按钮后,出现用于填写用户身份信息的子页面,用户可以在该子页面中填写姓名、身份证号等信息。

s205:客户端根据所述待校验字符的字符编码,以及所述第一合法字符集标识对应的字符编码范围,确定所述待校验字符的合法性。

这里,如果姓名合法,则可以根据用户指示进入后续下单流程,如果姓名不合法,则客户端需要调用服务器接口将待校验字符转换为合法的字符,见后续步骤s206。

在具体实施中,客户端可以根据预先存储的不同的合法字符集标识与字符编码范围之间的映射关系,确定第一合法字符集标识对应的字符编码范围。

如下表一所示,为目前航空公司常用的两种合法字符集标识及对应的字符编码范围。

表一

也即,在机票预订场景下,合法字符集标识gb2312对应的汉字字符编码范围为b0a1-f7fe,合法字符集标识gbk对应的汉字字符编码范围除包含gb2312对应的汉字字符编码范围b0a1-f7fe外,还包括:8140-a0fe、aa40-fea0、和a996。

在确定待校验字符的合法性时,首先采用预设的编码函数,将待校验字符转换为字符编码;针对转换后的字符编码,判断该字符编码是否在所述字符编码范围内;若不在所述字符编码范围内,则确定所述待校验字符不合法。

比如,这里的编码函数可以采用urlencode,比如用户输入的姓名为王喆敏,也即待校验的汉字字符分别为王、喆、敏,在校验到“喆”字时,采用urlencode将其转换为字符编码86b4,实际实施中,urlencode初始转换的编码为%86%b4,去掉其中的%,即为需要的字符编码86b4(16进制)。另外,确定的第一合法字符集标识gb2312对应的字符编码范围为b0a1-f7fe。则按字节分别进行比较,也即比较86是否大于或等于b0、且小于或等于f0,b4是否大于或等于a1、且小于或等于fe,即b0<=86<=f0且a1<=b4<=fe是否成立,比较发现,由于86<b0,因此确定“喆”字为生僻字。

这里,在预定机票这一场景中,一般地,若校验出用户名称中存在一个字为生僻字,则将用户姓名中从这个字开始的字都视为不合法字符。

s206:客户端在确定待校验字符不合法后,向服务器发送第二请求,用于请求将待校验字符转换为合法的字符。

在具体实施中,客户端在校验出用户输入的姓名中存在至少一个待校验字符不合法后,向服务器发送字符转换请求,其中携带有客户端确定出的不合法的字符。比如,在上述举例中,客户端将“喆敏”发送给服务器,由服务器转换为合法的拼音“zhemin”。

s207:服务器根据预存的字符转换库,将待校验字符转换为合法的字符。

这里,在预定机票这一场景中,将待校验字符转换为合法的字符,即为服务器根据预存的汉语字典,将不合法的汉字字符转换为拼音的形式。

s208:服务器将合法的字符返回给客户端。

这里,服务器返回给客户端“喆敏”对应的拼音“zhemin”。

s209:客户端将所述合法的字符展示在下单页面中,以便根据用户指示发起下单请求。

这里,客户端可以首先将校验后的合法字符指示给用户,供用户确认或修改,在用户确认后,再将合法字符展示在下单页面中。比如,客户端通过调用服务器接口,将王喆敏转换为王zhemin,然后展示给用户,提醒用户进行确认或修改,在用户确认后,将王zhemin展示在下单页面中。之后,用户就可以在下单页面发起下单请求。

采用本申请实施例,客户端可以在进入下单页面时,向服务器动态请求获取用户选择的服务供应方支持的合法字符集标识,然后确定该合法字符集标识对应的字符编码范围,根据用户输入的待校验字符的字符编码是否位于该字符编码范围内来确认待校验字符的合法性。由于从服务器获取的是服务供应方当前实际支持的合法字符集标识,从而可以保证验证结果的准确性,另外,通过比较待校验字符的字符编码是否位于合法的字符编码范围内来确认待校验字符的合法性,计算方式简单快捷。

实施例二

下面以机票预订场景为例,列举体现本申请思想的一种实施过程。

如图3所示,为本申请实施例二提供的字符校验方法流程图,包括以下步骤:

s301:客户端在用户选择进入下单页面时,向服务器发送第一请求,该第一请求用于请求获取下单页面的页面信息以及用户选择的服务供应方支持的第一合法字符集标识。

比如,用户打开客户端,进入搜索页面,在搜索页面选择始发地北京、目的地杭州、以及出发时间12月19日,然后点击搜索,服务器会为客户端返回一些简单的航班信息,包括航空公司信息、航班号、起航和到达时间等,在用户选择好一个航班,点击进入该航班的详情页后,用户可以选择预订的其它机票信息,如代理商及舱位,之后,用户选择进入下单页面,客户端发起第一请求。

s302:服务器向用户选择的航空公司对应的航司系统查询合法汉字字符集标识,以及机票详情信息。

s303:服务器基于航司系统返回的查询结果,生成响应信息,其中包含上述航空公司的合法汉字字符集标识以及用于生成下单页面的页面信息。

比如,假设用户选择了中国东方航空mu5458,则中国东方航空的服务系统基于服务器的查询请求,返回支持的合法汉字字符集标识gb2312,以及其他机票详情信息,如保险、其它套餐信息等。

s304:服务器向客户端返回响应信息。

这里,服务器向客户端返回合法汉字字符集标识gb2312,以及下单页面的机票详情信息,其中包含指示用户输入姓名、身份证号等的信息。

s305:客户端基于上述页面信息生成并显示下单页面,并接收用户在下单页面输入的姓名和身份证号。

s306:客户端根据预先保存的不同合法汉字字符集标识与字符编码范围之间的映射关系,确定服务器返回的合法汉字字符集标识对应的字符编码范围。

s307:从用户姓名中的第一个汉字开始,客户端采用urlencode,将该汉字转换为字符编码,并判断该字符编码是否位于确定的上述合法的字符编码范围内,若是,则继续校验下一个汉字,直到确定所有的汉字都合法(也即都不是生僻字),或直到确定一个汉字不合法(是生僻字)。若确定用户姓名中存在不合法字符,则进入s308。

这里,假如确认名字中有一个汉字不合法,则认为该汉字之后的汉字都不合法。比如,用户姓名为“王喆敏”,客户端在校验到“喆”字时,采用urlencode将“喆”转换为字符编码86b4,将其与gb2312对应的字符编码范围为b0a1-f7fe进行比较,发现86b4不属于该编码范围,则确认“喆敏”为不合法的汉字字符。

s308:客户端向服务器发送第二请求,其中携带不合法的汉字字符。

沿用上例,客户端将“喆敏”发送给服务器,服务器根据预存的汉语字典,将其转换为汉语拼音“zhemin”。

s309:服务器根据预存的汉语字典,将不合法的汉字字符转换为合法的拼音。

s310:服务器将合法的拼音返回给客户端。

s311:客户端将转换后合法的姓名展示在下单页面中,以便根据用户指示发起下单请求。

采用本申请实施例,客户端本地无需预置生僻字库,可以在用户选择进入下单页面时,向服务器动态请求获取用户选择的服务供应方支持的合法字符集标识,然后确定该合法字符集标识对应的字符编码范围,根据用户输入的待校验字符的字符编码是否位于该字符编码范围内来确认待校验字符的合法性。由于从服务器获取的是服务供应方当前实际支持的合法字符集标识,从而可以保证验证结果的准确性,另外,通过比较待校验字符的字符编码是否位于合法的字符编码范围内来确认待校验字符的合法性,计算方式简单快捷,也无需存储大量的生僻字,节省了存储空间。

基于同一发明构思,本申请实施例中还提供了一种与字符校验的方法对应的字符校验的装置,由于该装置解决问题的原理与本申请实施例字符校验的方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

如图4所示,为本申请实施例提供的字符校验的客户端结构图,包括:

发送模块41,用于在用户选择进入下单页面时,向服务器发起第一请求;所述第一请求用于请求获取下单页面的页面信息以及用户选择的服务供应方支持的第一合法字符集标识;

接收模块42,用于接收所述服务器返回的所述服务供应方支持的第一合法字符集标识和所述下单页面的页面信息;

处理模块43,用于基于所述页面信息,显示下单页面,并在接收到用户在该下单页面输入的待校验字符后,根据所述待校验字符的字符编码,以及所述第一合法字符集标识对应的字符编码范围,确定所述待校验字符的合法性。

可选地,所述处理模块43具体用于根据以下步骤确定所述第一合法字符集标识对应的字符编码范围:

根据预先存储的不同的合法字符集标识与字符编码范围之间的映射关系,确定所述第一合法字符集标识对应的字符编码范围。

可选地,所述处理模块43具体用于:

采用预设的编码函数,将所述待校验字符转换为字符编码;判断转换后的字符编码是否在所述字符编码范围内;若转换后的字符编码不在所述字符编码范围内,则确定所述待校验字符不合法。

可选地,所述发送模块41还用于:

在所述处理模块43确定所述待校验字符不合法后,向所述服务器发送第二请求,该第二请求用于请求将所述待校验字符转换为合法的字符;

所述接收模块42还用于:

接收所述服务器返回的合法的字符;

所述处理模块43还用于:

将所述合法的字符展示在所述下单页面中,以便根据用户指示发起下单请求。

如图5所示,为本申请实施例提供的字符校验的服务器结构图,包括:

接收模块51,用于接收客户端发送的第一请求;所述第一请求用于请求获取下单页面的页面信息以及用户选择的服务供应方支持的第一合法字符集标识;

处理模块52,用于基于所述第一请求,确定所述服务供应方支持的第一合法字符集标识,以及所述下单页面的页面信息;

发送模块53,用于向所述客户端发送所述第一合法字符集标识和所述下单页面的页面信息,以便所述客户端基于所述页面信息生成下单页面,并根据所述第一合法字符集标识验证用户在所述下单页面输入的待校验字符的合法性。

可选地,所述处理模块52具体用于:

指示所述发送模块53向所述服务供应方发送合法字符集查询请求;通过所述接收模块51接收所述服务供应方反馈的第一合法字符集标识。

可选地,所述接收模块51还用于:

接收所述客户端发送的第二请求,所述第二请求用于请求将所述待校验字符转换为合法的字符;

所述处理模块52还用于:

根据预设的转换规则,将所述待校验字符转换为合法的字符;

所述发送模块53还用于:

将所述合法的字符返回给所述客户端,以便所述客户端基于所述合法的字符发起下单请求。

采用上述装置,客户端本地无需预置生僻字库,可以在用户选择进入下单页面时,向服务器动态请求获取用户选择的服务供应方支持的合法字符集标识,然后确定该合法字符集标识对应的字符编码范围,根据用户输入的待校验字符的字符编码是否位于该字符编码范围内来确认待校验字符的合法性。由于从服务器获取的是服务供应方当前实际支持的合法字符集标识,从而可以保证验证结果的准确性,另外,通过比较待校验字符的字符编码是否位于合法的字符编码范围内来确认待校验字符的合法性,计算方式简单快捷,也无需存储大量的生僻字,节省了存储空间。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1