如何在javascript中将一个变量拆分为多个变量?

时间:2015-11-11 11:12:33

标签: javascript

抱歉,我是Javascript的新手,我需要帮助。我的问题是这样的。我有一个像这样的变量,即:

abcdefg1234567hijklmnop

该变量由3部分组成:字符串,数字,字符串。问题是我不知道如何拆分它们:

var1=abcdefg
var2=1234567
var3=hijklmnop

所以我可以将它们发送到另一个带有ajax帖子的php文件。有没有办法让它发生?感谢。

2 个答案:

答案 0 :(得分:3)

使用regEXP

var str = "abcdefg1234567hijklmnop",            
    result = /^([a-zA-Z]+)(\d+)([a-zA-Z]+)$/.exec(str);

console.log(result[0]); // abcdefg1234567hijklmnop
console.log(result[1]); // abcdefg
console.log(result[2]); // 1234567
console.log(result[3]); // hijklmnop

https://regex101.com/ - 创建,理解和测试regExp的好地方

HIW:

  1. /^$/ - / - 正则表达式字面的分隔符。 ^ - 字符串的开头,$ - 结束
  2. ([a-zA-Z]+) - 捕获第1组; +一次或多次传递给任何[a-zA-Z]个字符。 [a-zA-Z]:匹配从azAZ的字符,因此匹配所有字母表。
  3. (\d+) - 捕获第2组; \d - 匹配单个数字,+匹配一个或多个前一个字符。 \d = [0-9]
  4. ([a-zA-Z]+) - 捕获第3组;与2相同。
  5. 您可以在此处阅读有关regExp的更多信息:

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

    要学习正则表达式http://www.regular-expressions.info/

答案 1 :(得分:2)

这是一个单线

/(\D+)(\d+)(\D+)/.exec('abcdefg1234567hijklmnop').slice(1).forEach(function(v, n) { window['var'+(n+1)] = v; });

/(\D+)(\d+)(\D+)/.exec('abcdefg1234567hijklmnop').slice(1).forEach(function(v, n) {
    this['var'+(n+1)] = v;
}.bind(window));
如果需要,

用另一个对象替换window以创建var n