怎么样用正则表达式判断真实姓名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么样用正则表达式判断真实姓名相关的知识,希望对你有一定的参考价值。

“真实姓名”的描述有点不够精确。“真实姓名”其实应该包含两层含义:

1、真实的人

2、与真实的人相对应的真实的姓名

判断是否是“真实姓名”,除了户籍管理部门都不太准确,除非该人刚好认识。

光从“文字”的角度来判断“姓名”是否“真实”,顶多只能从规则上判断“姓名”是否符合取名的常识

比如,中国人的“姓名”,由“姓”和“名”两部分组成,抛除一些脑洞大开、标新立异的“姓”,大多数的“姓”还是要依据诸如《百家姓》之类的传统(汉族更准确)。

可以参阅《姓名登记条例(初稿)》中有关规定:

参考技术A Cp0204
^[\xa0-\xff]2,4$

真实姓名就不用想了,主要是符合姓名规范。上面表达式只判断汉字2-4位,如果要再复杂一点,可以再加上当4位时,判断2字的姓氏,你还可以加上N家姓,不过不太现实。

求高手帮忙写一个正则表达式,用来判断一个只能输入数字的文本框若输入英文、汉字或符号显示错误信息

不知道你要用什么语言来写,这里用js来做示例,反正限制只能输入数字的正则表达式是一样用的,就是 ^[0-9]*$,你在别的语言里也一样用。

下面是例子:

<html>
<head>
<!--
    保存此脚本为 test.html,允许浏览器运行脚本,打开此脚本进行测试
-->
<script type="text/javascript">
function check()

    var str;
    str = document.getElementById("txtInput").value;
    if (str.match(/^[0-9]*$/) == null)
    
        alert("非数字。");
    

</script>
</head>
<body>
    输入:<input type="text" id="txtInput" value="" onpropertychange="check()" />
</form>
</body>
</html>

追问

我要用Java来写,我原来的正则表达式是这样写的:
regex="[^1234567890.]";
if(txts.getText().matches(regex))System.out,print("必须输入数字");
但是我把[^1234567890.]改成^[0-9]*$后,运行下来我在文本框里输入英文后发现直接显示错误,不显示说“必须输入数字”。请问怎么改?

追答

没用过java,不过看你的正则应该也是行得通的(虽然说可能出现多个小数点的情况 123.123.23,但不至于出错)。
错误提示是什么,你去排排错应该就行了吧。
另外你上面的语句是不是点号错打成逗号了:System.out,print("必须输入数字"); -> System.out.print("必须输入数字");

参考技术A 用如下正则即可
^\d+$

以上是关于怎么样用正则表达式判断真实姓名的主要内容,如果未能解决你的问题,请参考以下文章

如何实现用正则表达式判断输个入的姓名是不是合法(中文,2-7个汉字)

java中检查姓名的正则表达式

正则表达式-验证中英文的姓名!

java正则表达式,我想要一个java的能够检测中文姓名的简单方法,下面是我自己尝试的,但是永远返回了假

用正则表达式判断端口号是否在0到65535之间

android中怎么用正则表达式