例如:有两个字符串  string str1="STS09-南澳",string str2="S99NHG南海阁3"
去掉汉字和中划线以后,得到的值为:str1="STS09",str2="S99NHG3"

解决方案 »

  1.   

    去下划线自己写去,那个简单//截取字符串,汉字算两个字符
            public static string CutString(string str, int length)
            {
                string tmp = str.Trim();
                int i = 0, j = 0;
                foreach (char chr in tmp)
                {
                    if ((int)chr > 127)
                    {
                        i += 2;
                    }
                    else
                    {
                        i++;
                    }
                    if (i > length)
                    {
                        tmp = tmp.Substring(0, j) + "...";
                        break;
                    }
                    j++;
                }
                return tmp;
            } 
      

  2.   

       string str1="STS09-南澳";
       string[] strs = strCodeAndType.Split('-');把字符串分割成数组
       string strCode = strs[0];得到-前的部分
        string strCode = strs[0];得到-后的部分
            <script>
    /***去除中文函数****/
    function CutChr()
    {
    var x=document.getElementById("text");
    var str=x.value;
    while(/[\u4E00-\u9FA5]+/.test(str)){
    str=str.replace(/[\u4E00-\u9FA5]+/,""); 
    x.value=str;
    }
    }</script> 
       
      

  3.   

    前面变量写错了
       string str1="STS09-南澳";
      string[] strs = str1.Split('-');把字符串分割成数组
      string strCode = strs[0];得到-前的部分
      string strCode1 = strs[0];得到-后的部分
      

  4.   

    Regex.Replace(string,string,MatchEvaluator, RegexOptions)
    这个方法 查下msdn就会用了
      

  5.   

            string str1="STS09-南澳";
            string str2 = "S99NHG南海阁3";
            Regex oRegex = new Regex(@"[\u4E00-\u9FA5\-]*");
            Response.Write(oRegex.Replace(str1, "")+"</br>");
            Response.Write(oRegex.Replace(str2, ""));
      

  6.   


    这个可以。。用正则匹配中文和下划线。,,,用replace替换掉