我有这个字符串
'john smith~123 Street~Apt 4~New York~NY~12345'
使用JavaScript,最快的方法是什么
var name = "john smith";
var street= "123 Street";
//etc...
我有这个字符串
'john smith~123 Street~Apt 4~New York~NY~12345'
使用JavaScript,最快的方法是什么
var name = "john smith";
var street= "123 Street";
//etc...
当前回答
这个答案不如破坏性的答案好,但鉴于这个问题是12年前提出的,我决定给出一个12年前也适用的答案。
function Record(s) {
var keys = ["name", "address", "address2", "city", "state", "zip"], values = s.split("~"), i
for (i = 0; i<keys.length; i++) {
this[keys[i]] = values[i]
}
}
var record = new Record('john smith~123 Street~Apt 4~New York~NY~12345')
record.name // contains john smith
record.address // contains 123 Street
record.address2 // contains Apt 4
record.city // contains New York
record.state // contains NY
record.zip // contains zip
其他回答
使用JavaScript的String.prototype.split函数:
var input = 'john smith~123 Street~Apt 4~New York~NY~12345';
var fields = input.split('~');
var name = fields[0];
var street = fields[1];
// etc.
split()方法用于将字符串转换为数组。 它接受一个可选参数,作为一个字符,对其进行拆分。在你的情况下(~)。
如果splitOn被跳过,它将简单地将string放在数组的第0个位置。
如果splitOn只是一个" ",那么它将转换数组的单个字符。
在你的例子中:
var arr = input.split('~');
将在arr[0]处获取名称,在arr[1]处获取街道。
你可以在这里阅读更详细的解释 在JavaScript中拆分
您需要研究JavaScript的substr或split,因为这不是一个真正适合jQuery的任务。
因为分隔逗号的问题被复制到这个问题上,所以在这里添加这个。
如果你想对一个字符进行拆分,并处理该字符后面可能出现的额外空格,通常使用逗号,你可以使用替换然后拆分,如下所示:
var items = string.replace(/,\s+/, ",").split(',')
你不需要jQuery。
var s = 'john smith~123 Street~Apt 4~New York~NY~12345'; Var字段= s.split(/~/); 变量名称=字段[0]; Var street = fields[1]; console.log(名称); console.log(街);