把中文标点替换成英文,全角标点替换成半角

今天遇到个中文和英文标点之间转换的问题

 

从网上找到一个解决方法记录下

 

<html>
<head>
<script language="javascript">
		function ChineseToEnglish(txt)  
        {  
            var ChineseInterpunction = [ "“", "”", "‘", "’", "。", ",", ";", ":", "?", "!", "……", "—", "~", "(", ")", "《", "》" ];  
            var EnglishInterpunction = [ "\"", "\"", "'", "'", ".", ",", ";", ":", "?", "!", "…", "-", "~", "(", ")", "<", ">" ];  
			for (var j = 0; j < ChineseInterpunction.length; j++)  
			{  
				//alert("txt.replace("+ChineseInterpunction[j]+", "+EnglishInterpunction[j]+")");
				var reg=new RegExp(ChineseInterpunction[j],"g");
				txt = txt.replace(reg, EnglishInterpunction[j]); 
			} 
			alert(txt);
            return txt;
        } 

   //方法描述:把指定输入框中的全角字符转为半角字符,并在输入框失去焦点时自动改变输入框中的全角字符
  //原理说明:
  //      1、全角空格为12288,半角空格为32
   //      2、其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
        function FullToDBC(obj){
                var Str = obj.value;
                var DBCStr = "";
				Str = ChineseToEnglish(Str);
				if(/.*[\u4e00-\u9fa5]+.*$/.test(Str)){       
					alert("含有汉字!");       
				}
                for(var i = 0; i < Str.length; i++){
                        var c = Str.charCodeAt(i);
                        if(c == 12288){
                                DBCStr += String.fromCharCode(32);
                                continue;
                        }
                        if(c > 65280 && c < 65375){
                                DBCStr += String.fromCharCode(c - 65248);
                                continue;
                        }
                        DBCStr += String.fromCharCode(c);
                }
                obj.value = DBCStr;
        }
</script>
</head>

<body>
<center>
		<textarea id="testStr" rows="20" cols="120" οnblur="FullToDBC(this);"></textarea>
</center>
</body>
</html>
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值