帝国cms使用技巧:利用字段信息处理函数,把全角转为半角,采集分类用得上

本文介绍了一种将全角字符转换为半角字符的方法,通过PHP代码实现,适用于采集和用户输入的数据处理场景。

转载来源:点击打开链接

功能:将全角变为半角。
使用
将以下代码复制到 userfun.php
在要使用的字段 的 信息处理函数 处加上函数名 user_FieldFun

function user_FieldFun($mid,$f,$isadd,$isq,$value,$cs){
$value = preg_replace('/\xa3([\xa1-\xfe])/e', 'chr(ord(\1)-0x80)', $value); //将全角转换为半角
return $value; }

/*参数说明:
user_FieldFun:函数名
$mid:系统模型ID
$f:字段名
$isadd:值为0时是增加信息;值为1时是修改信息
$isq:值为0时是后台处理;值为1时是前台处理
$value:字段原内容
$cs:字段附加参数,字段处理函数处设置的参数内容 
*/

在采集分类信息目标站的时候,发现它的数字有全角的形式,出现在网站上看起太别扭。
打算利用火车头的外部编程插件来达到目的,但又想到,火车头是处理了,万一是用户发表时填写的全角呢?
所以找了个正则,刚好利用上这个函数功能。

### JavaScript 实现全角字符换为半角字符的方法 在 JavaScript 中,可以使用正则表达式结合字符串替换函数来实现全角字符到半角字符的换。以下是具体的实现方法: #### 方法概述 全角字符与半角字符之间的换主要依赖于它们的 Unicode 编码差异。全角字符通常比对应的半角字符的 Unicode 值大 65248(即 0xFEE0)。利用这一特性,可以通过遍历字符串中的每个字符,并根据其 Unicode 值进行判断和换[^1]。 #### 实现代码 以下是一个完整的 JavaScript 函数示例,用于将全角字符换为半角字符: ```javascript function convertFullWidthToHalfWidth(str) { if (typeof str !== "string") return str; return str.replace(/[\uFF01-\uFF5E]/g, function(match) { return String.fromCharCode(match.charCodeAt(0) - 0xFEE0); }).replace(/\u3000/g, " "); // 全角空格半角空格 } ``` #### 代码解析 - `str.replace(/[\uFF01-\uFF5E]/g, ...)`:此部分通过正则表达式匹配全角字符范围(从 `!` 到 `~`),并将其逐一替换为对应的半角字符。 - `String.fromCharCode(match.charCodeAt(0) - 0xFEE0)`:计算每个全角字符的 Unicode 值,并减去 0xFEE0 得到对应的半角字符。 - `.replace(/\u3000/g, " ")`:单独处理全角空格(Unicode 编码为 `\u3000`),将其替换为普通的半角空格[^1]。 #### 示例用法 以下是如何使用上述函数的示例: ```javascript const fullWidthStr = "Hello,World!"; const halfWidthStr = convertFullWidthToHalfWidth(fullWidthStr); console.log(halfWidthStr); // 输出: Hello, World! ``` #### 注意事项 - 如果输入字符串中包含非全角字符,则这些字符将保持不变。 - 需要确保输入数据为字符串类型,否则可能引发错误或返回不正确的结果[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值