正则判断半角全角空格等

半角字符:

半角拉丁字符u0000 - u00FF

半角日语字符uFF61 - uFF9F

半角其他字符uFFE8 – uFFEE

全角字符:

全角数字(0-9) uFF10 - uFF19

全角大英字(A-Z): uFF21 - uFF3A

全角小英字(a-z): uFF41 - uFF5A

全角平仮名:u3040 - u309F

全角片仮名:u30A0 - u30FF

全角Latin: uFF01 - uFF5E

全角Symbol: uFFE0 - uFFE5

str="中文;;abc"   
console.log(str.match(/[\u0000-\u00ff]/g))   //半角  
console.log(str.match(/[\u4e00-\u9fa5]/g))   //中文  
console.log(str.match(/[\uff00-\uffff]/g))   //全角
let str = '多くの難解なマスター'
if (/[^\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\u3040-\u309F\u30A0-\u30FF\uFF01-\uFF5E\uFFE0-\uFFE5]/ig.test(str)) {
        str = ''
 }
// 只匹配半角的字母、数字与符号
/^[A-Za-z0-9!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]+$/

### 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、付费专栏及课程。

余额充值