【问题标题】:Number and Alphabet Separation in a String字符串中的数字和字母分隔
【发布时间】:2016-11-02 11:35:06
【问题描述】:

我在 Javascript 中有字符串变量,例如:

var houseNo = "62A";
var CabinNo = "5BC";

我需要从字符串中取出整数和字母分开,其中每个的出现次数可以是任意次数。

需要帮助才能以最佳方式完成,无论是通过lodash 还是任何其他原型方法。

参考this,但由于不希望通过 RegEx 获得它而徒劳无功。

【问题讨论】:

  • 只需逐个提取字符并与数字比较并与字母比较并根据条件执行计数
  • jQuery.isNumeric("string") 应该会有所帮助。

标签: javascript string variables split alphanumeric


【解决方案1】:

试试这个:

    var houseNo = "62A"; 
    foreach(char a in houseNo)
    {
        if(a > 48 && a < 57)
        {
         /*it's a number*/
        }
        else 
        {
            /*it's a letter*/
        }
    }

您可以将它应用于每个字符串,并确定要对每个数字或字母做什么。

【讨论】:

  • 这是一种非常直接且完美的方法,但在参数列表“@Shlomi Haver
【解决方案2】:

类似:

function decompose(string){ 
     for(var i=0;i<string.length;i++){
             if(parseInt(string[i])){ // if the char is a number?
                // do whatever you want
             }else{
                // it's a character
             }  
      }
}

parseInt() 函数返回给定字符的编号。如果不是数字,则返回 NaN(不是数字)。 if(parsInt(char)) 如果是字符则返回 false,如果是数字则返回 true

【讨论】:

  • 谢谢@Hearner。工作得很好。
【解决方案3】:
var test = "a3434dasds3432s2"
var myString = test.split("").filter(function(v) {return isNaN(v)}).join("")
var myNumber = parseInt(test.split("").filter(function(v) {return !isNaN(v)}).join(""))

最好使用正则表达式。

【讨论】:

    猜你喜欢
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 2020-04-17
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多