抱歉,我是Javascript的新手,我需要帮助。我的问题是这样的。我有一个像这样的变量,即:
abcdefg1234567hijklmnop
该变量由3部分组成:字符串,数字,字符串。问题是我不知道如何拆分它们:
var1=abcdefg
var2=1234567
var3=hijklmnop
所以我可以将它们发送到另一个带有ajax帖子的php文件。有没有办法让它发生?感谢。
答案 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:
/^$/
- /
- 正则表达式字面的分隔符。 ^
- 字符串的开头,$
- 结束([a-zA-Z]+)
- 捕获第1组; +
一次或多次传递给任何[a-zA-Z]
个字符。 [a-zA-Z]
:匹配从a
到z
和A
到Z
的字符,因此匹配所有字母表。(\d+)
- 捕获第2组; \d
- 匹配单个数字,+
匹配一个或多个前一个字符。 \d = [0-9]
([a-zA-Z]+)
- 捕获第3组;与2相同。您可以在此处阅读有关regExp的更多信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
答案 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