【问题标题】:Get string and number with regex使用正则表达式获取字符串和数字
【发布时间】:2012-02-08 08:42:37
【问题描述】:

我在 javascript 中有一个这样的字符串:

一些字符串 27

也可以

一些字符串

字符串 123

甚至

字符串 23A - 或 - 字符串 23 A

换句话说,它始终是一个字符串。有时它以数字结尾,有时不是。有时数字末尾有一个字母(只有一个)。

现在的问题是,我必须拆分这个字符串。我需要存储在两个变量中的字符串和数字(​​包括字母,如果有的话)。喜欢在:

一些字符串 27

var str = "一些字符串" 变量编号 = 27;

我可能需要用正则表达式来做这件事。但我不知道怎么做。

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 如果是some string 27 A,你希望你的2个变量如何?
  • @anubhava 那么它应该仍然包含两个变量。 var str = "some string"var number = "27 A"
  • 好吧"27 A"不是一个真正的数字,你能用一些更好的命名变量吗:)

标签: javascript regex


【解决方案1】:

你应该使用这个正则表达式:

var arr = s.match(/^(\D+?)\s*(\d+(?:\s+[A-Z])?)$/i);

然后使用:

var str = arr[1];
var number = arr[2];

假设 s 是包含原始文本的变量;

【讨论】:

    【解决方案2】:

    根据你提供的正则表达式应该是:

    /(.*) (\d+ ?[A-Z]?)$/i
    

    任何东西都可以是字符串。 数字锚定到最后,它与字符串之间用一个空格分隔,最后的空格和字母是可选的。

    var v='some string 27';
    var arr = v.match(/(.*) (\d+ ?[A-Z]?)$/i);
    var str = arr[1];
    var num = arr[2];
    

    【讨论】:

      【解决方案3】:

      你可以用一个函数来做:

      function splitStringsNumbers(str)
      {
          return 
          {
               Numbers: str.match(/[0-9]+/g)
               Strings: str.match(/^[0-9]+/g)
          }
      }
      

      现在像这样使用它:

      var obj = splitStringsNumbers("string 23A")
      console.log(obj.Strings[0]); //print string
      console.log(obj.Numbers[0]); //print 23
      console.log(obj.Numbers[1]); //print A
      

      如果你想把 nummer 作为数值变量, 你可以使用parseInt(str)。 此外,此解决方案仅适用于整数,要与浮点数(如字符串 23.4A)一起使用,您需要更改一些正则表达式。

      【讨论】:

        【解决方案4】:

        尝试以下正则表达式:

        /^([^\d]*)(\d+\s*[a-z]?)?$/i
        

        【讨论】:

          【解决方案5】:

          试试这个;

          var r = new RegExp("/[0-9]+\w?/");
          var s = "some letters 125a";
          console.log(s.match(r));
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-04-11
            • 1970-01-01
            • 2014-04-09
            • 1970-01-01
            • 1970-01-01
            • 2019-05-02
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多