ajax擷取漢字拼音首字元及筆畫

來源:互聯網
上載者:User

  最近做的一個項目中要添加一個小功能,就是在客戶輸入藥品名稱的時候能自動產生藥材名的拼音首字元及藥材名稱第一個字的筆畫數,在以後的藥材檢索中中用到。

  為了方便藥材資訊錄入我想到用AJAX解決,漢字拼音和筆畫可以用微軟提供的Visual Studio International Pack類庫。

1、引用ChnCharInfo.dll、ChnCharInfoResource.dll到WEB項目中:


2、頁面引用Jquery指令碼庫並加一個JS函數:

ChnCharInfo

<script src="UI/js/jquery.js" type="text/javascript" language="javascript"></script>

<script language="javascript" type="text/javascript"> 

<!--
function ChnCharInfo(o){
    $.getJSON(
        "ChnCharInfo.ashx?s=" + encodeURI(o.value),
        function(json){
            try{
                 $("#medspell").value = json.pingying;  //拼音
                 $("#medpen").value = json.bihua;  //筆畫
            }catch(e){}
        }
    );
}
// --> 
</

 

3、TextBox 加上 onblur 事件: TextBox1.Attributes.Add("onblur", "ChnCharInfo(this)");

4、新增一個 ChnCharInfo.ashx 檔案:

 

ChnCharInfo
<%@ WebHandler Language="C#" Class="ChnCharInfo" %>

using System;
using System.Web;

using System.Collections.ObjectModel;
using Microsoft.International.Converters.PinYinConverter;

public class ChnCharInfo : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {

        context.Response.Cache.SetCacheability(HttpCacheability.NoCache);

        string cn_bh = "bihua:\"";
        string cn_py = "pingying:\"";

        string s = context.Server.UrlDecode(context.Request.QueryString["s"]);

        try
        {
            char[] c = s.ToCharArray();

            for (int i = 0; i < c.Length; i++)
            {
                try
                {
                    int bh = ChineseChar.GetStrokeNumber(c[i]);
                    cn_bh += bh.ToString();
                    break;
                }
                catch { }
            }

            for (int i = 0; i < c.Length; i++)
            {
                try
                {
                    ChineseChar x = new ChineseChar(c[i]);
                    ReadOnlyCollection<string> roc = x.Pinyins;
                    foreach (string py in roc)
                    {
                        cn_py += py.Substring(0, 1);
                        break;
                    }
                }
                catch { }
            }
        }
        finally
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{" + cn_py + "\"," + cn_bh + "\"}");
            context.Response.End();
        }
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

 

5、測試一下  http://localhost:/../ChnCharInfo.ashx?s=漢字,如果一切正常會顯示 {pingying:"HZ",bihua:"5"}

這樣就完成了這個小功能,是不是很簡單,呵。。

ChnCharInfo.dll、ChnCharInfoResource.dll檔案可在附件中下載得到。


附件:/Files/relax/ChnCharInfo.rar

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.