Javascript 如何使用string.split(";)Js获取字符串中的第二组空格
我有一个字符串将有至少一个空格,在这种情况下,它更容易使用Javascript 如何使用string.split(";)Js获取字符串中的第二组空格,javascript,Javascript,我有一个字符串将有至少一个空格,在这种情况下,它更容易使用 string.split(“”)以获取数组中的2个元素。 例: 但是,在某些情况下,我可能有多个空格: 例: 在上述情况下,我仍然希望分离出: "ABC 123" and "JAck 123333" 但是使用string.split(“”)将得到: ["ABC", "123", "JAck", "123333"] 相反,我试图得到两个元素,一个是“ABC 123”和“JAck 123333” 在这种情况下,我不担心“ABC 123”
string.split(“”)以获取数组中的2个元素。
例:
但是,在某些情况下,我可能有多个空格:
例:
在上述情况下,我仍然希望分离出:
"ABC 123" and "JAck 123333"
但是使用string.split(“”)将得到:
["ABC", "123", "JAck", "123333"]
相反,我试图得到两个元素,一个是“ABC 123”和“JAck 123333”
在这种情况下,我不担心“ABC 123”和“JAck 123333”之间的空格
可能的情况:
string = "ABC122 JACK333",
string = "ABC 122 JACK333",
string = "ABC 122 JACK 333",
string = "ABC122 JACK 333"
以下是我创作的小提琴:
我试图消除这些空白的原因是因为我想在o/p中获得以下内容
Name: ABC
Id: 32423
Address: Jack
Code: 43453
现在,有效的输入字段值将具有
- 字母+数字(空格)字母+数字
- 字母(空格)数字(空格)字母(空格)数字
- 字母+数字(空格)数字+字母
因此,当用户键入:
string = "something322somethingALL433"
这将是无效字符串,因为第一组字母+数字(即,“something322”和“somethingALL433”)之间没有空格
当用户键入时,当前使用我的代码:string=“abd32xys6472”
我得到的o/p是:
Name: abdxys
Id: 326472
相反,我试图得到:
Name:abd
Id:32
Address:xys
Code:6472
希望这有意义 使用正则表达式匹配字母序列和数字序列,并在它们之间添加可选空格
函数获取字符串(str){
var m=str.match(/([a-z]+\s*\d+)\s+([a-z]+\s*\d++\d+\s*[a-z]+)/i);
返回m&m.slice(1);
}
日志(获取字符串(“ABC122 JACK333”))
日志(获取字符串(“ABC 122 JACK333”))
日志(获取字符串(“ABC 122杰克333”))
日志(获取字符串(“ABC122插孔333”))
console.log(get_strings(“test444 444test”)
我不完全确定这里需要的逻辑是什么-如果输入是foo-bar-baz
,或者用4个空格而不是3个空格,等等怎么办?那么foo和bar将在一起,baz将作为下一个元素,即:[“foobar”,“baz”],因此听起来您不仅想要匹配字符串的特定部分,您还想替换某些匹配部分中的空格(但不是其他部分)?是的,这听起来像是第三种不同的处理方式。你能给我们概括一下所有的案例吗,包括'foo bar baz qux corg'
和'a b c d e f g h i'
?谢谢@barmar,工作得很有魅力,很快,还有一个场景,它可能是str=“test444 444test”
,如我的示例中所述。有没有办法更改正则表达式以匹配该场景?我们已经更新了答案,使用了两个捕获组。第一组匹配字母+数字
,第二组匹配字母+数字
或数字+字母
。
Name: abdxys
Id: 326472
Name:abd
Id:32
Address:xys
Code:6472