最近由于单位提了一个需求,要判断提供的用户名称里不有全角字符,至少有两个汉字。找了半天,想通过正则表达式来解决,但测试了好久才发现,oracle的正则函数REGEXP_LIKE 不支持“\un匹配 n,其中 n 是以四位十六进制数表示的 Unicode 字符”的判断,例如,

最近由于单位提了一个需求,要判断提供的用户名称里不有全角字符,至少有两个汉字。找了半天,想通过正则表达式来解决,但测试了好久才发现,oracle的正则函数REGEXP_LIKE 不支持“\un 匹配 n,其中 n 是以四位十六进制数表示的 Unicode 字符”的判断,例如,\u00A9 匹配版权符号 (?),而标准的正则是可以支持的,所以这个办法行不通,只能过期其他办法来实现。

在网上找了半天,都没有确切的实现办法,有通过Length()和lengthb ()来判断,但不完美,所以就把自己的写法记录下来希望能有用处。

对于全角字符,ascii值的范围是\uFF00-\uFFFF,都是FF段的,所以可以通过转换成ascii 来判断,instr(asciistr(replace( '在《<23\', '\')),'\FF',1,1) > 0 就可以实现

对于汉字,范围太大,只能通过函数来完成,于是写了如下函数:

create or replace function get_chinese(v_name in varchar2) return integer is

i       int;

<

判断全角字符oracle,oracle判断汉字和全角字符的方法相关推荐

  1. mysql汉字占几个字符_mysql和oracle的一个汉字占几个字符

    以前一直使用oracle11g,一个汉字占3个字节,所以在操作mysql时也一直这样分配长度. 今天测试了下发现不对了 可以看到第一个的长度确实是15,但是第二个为什么是5? 在网上找到资料:char ...

  2. 纯js计算字符串中的字符的个数(汉字算两个字符计算)

    function getByteLen(val) {var len = 0;for (var i = 0; i < val.length; i++) {var a = val.charAt(i) ...

  3. php区分全角半角字符,php如何判断是字符串全角还是半角

    php如何判断是字符串全角还是半角 关注:168  答案:2  手机版 解决时间 2021-01-15 16:08 提问者夏日╮悲歌 2021-01-15 00:27 php如何判断是字符串全角还是半 ...

  4. java首字母判断星期几_Java 获取汉字串首字母并大写和获取汉字的全拼(英文字符不变) 判断字符串是否为字母...

    在开发一个姓名检索功能的时候 没有使用之前查找到的前端Layui-select 下拉框实现拼音全拼匹配/首字母模糊搜索 在数据库中增加了首字母和全拼的内容实现输入首字母/拼音来检索人员 所以需要用到人 ...

  5. oracle 括号全角转半角,Oracle 表字段全角字符转换半角字符办法

    如何把oracle表中的全角字符转换为半角字符? a表包含全角字符的字段:address update a set a.address =(to_single_byte(a.address)) 执行, ...

  6. oracle如何判断数字中有字母,SQL 判断含有字母和数字的字符串

    SQL 判断含有字母和数字的字符串,你想从一个表里筛选出部分行数据,筛选条件是你感兴趣的那个列只包含字母和数字字符,考虑下面的视图 V(SQL Server 用户需要把字符串连接操作符||替换为 +) ...

  7. oracle正则判断数字开头,oracle 正则表达式判断是否数字

    oracle 正则表达式判断是否数字 发布时间:2018-12-13 10:35, 浏览次数:375 , 标签: oracle 正则表达式 ORACLE中的支持正则表达式的函数主要有下面四个: 1,R ...

  8. oracle判断非空并拼接,oracle sql 判断字段非空,数据不重复,插入多跳数据

     oracle sql 判断字段非空,数据不重复 select distinct(mobile) from wx_user_mobile where active_time is not null ...

  9. js 识别汉字和全角字符

    遇到个问题,需要检测输入框中的字符长度,如果是汉字,算作2个字节。。。 然后我就在想,我怎么去识别他是不是汉字呢???首先想到的可能就是 js 的 charCodeAt 方法, ASCII 码,然后就 ...

  10. oracle触发器判断空值,oracle触发器加条件判断、dblink

    --新增基站同步给电池组信息 create or replace trigger a_b_test after insert or update or delete on BJLT.BASESTATI ...

最新文章

  1. 【Runtime】动态添加方法demo
  2. 字符串截取,对数字,英文,汉字都可以
  3. Facebook如何向十亿人推荐东西
  4. python 输出在固定位置_python多进程/线程抢占stdoutput总是在固定位置截断上个输出?...
  5. 60行代码俄罗斯方块
  6. GDCM:处理DICOM文件的示例
  7. 怎么使用starwind部署iscsi_2019 年总结 - 多环境多版本的部署
  8. 你会用Java实现两个大数相加吗
  9. Prim和Kruskal求最小生成树
  10. nginx 发送动态内容注意事项
  11. APISpace 手机号码归属地API
  12. 数字电子技术基础(六):译码器、数据选择器
  13. 涡CFTurbo 10.2.6 2017泵轮涡旋式机械设计
  14. ie7/8卸载工具 降级到IE6
  15. 棋牌游戏开发教程系列:游戏服务器框架搭建
  16. 如何根据IP地址获取局域网内的主机名称
  17. Win7快速启动栏恢复方法
  18. 前端优质网络内容(引用)
  19. 新手如何看k线(图)
  20. CS5265的Type-C转HDMI2.0方案

热门文章

  1. UPS电源是什么东西
  2. Excel中使用VLOOKUP在多个sheet表中查询数据的公式
  3. 天津专家成功发明脉象仪、舌象仪等中医辅助诊断设备,准确率超过95%
  4. 高中毕业后的这些年(续)
  5. hadoop 透明加密先关命令
  6. ROS命令管理器-使用入门
  7. 【Yngz_Miao的博客】博客导航(不断更新)
  8. UE Widget截图功能实现
  9. 【附源码】计算机毕业设计SSM献血管理系统
  10. maven之packaging标签