【问题标题】:Split long string into an javascript array using regex [closed]使用正则表达式将长字符串拆分为javascript数组[关闭]
【发布时间】:2016-04-12 18:09:19
【问题描述】:

我希望将一个长字符串拆分为一个较小的仅 userID javascript 数组,但我不知道该怎么做。

字符串如下所示:

22;#Jimmy,, Love,#i:0#.w|towncountry.com\\LoveJimmy,#JLove@towncountry.com,#,#Jimmy,, Love,#,#,#;#334; #Jane Austin,#i:0#.w|towncountry.com\\JAustin,#JAustin@towncountry.com,#,#Jane Austin,#,#,#;#433;#Charlie Clearfolk,#i:0# .w|towncountry.com\\CClearfolk,#CClearfolk@towncountry.com,#,#Charlie Clearfolk,#,#,# 

我希望创建一个包含用户 ID 的数组,它们是:

JLove, JAustin, CClearfolk

【问题讨论】:

  • 你的字符串看起来完全随机
  • string.match(/regexp/g) 将返回正则表达式的所有匹配项的数组。所以只需编写一个匹配字符串的用户名部分的正则表达式。
  • 如果您描述了字符串格式,我们可以提供一些建议。 (例如,数据的类型和它们在字符串中的顺序是什么?)
  • 大家好,数据是在 sharepoint 2013 环境中使用 Spservices 进行的多用户值列查找。返回的字符串似乎以 ID 号开头并以 3 # 个哈希标签结尾。我对正则表达式非常糟糕,但我确实发现这向我显示了电子邮件地址..([\\w-+]+(?:\\.[\\w-+]+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,7})

标签: javascript arrays regex


【解决方案1】:

您可以获得介于#@ 之间的每个单词。像这样的:

/(\w+)(?=@)/g

Online Demo


完整代码:

var str = "22;#Jimmy,, Love,#i:0#.w|towncountry.com\\LoveJimmy,#JLove@towncountry.com,#,#Jimmy,, Love,#,#,#;#334;#Jane Austin,#i:0#.w|towncountry.com\\JAustin,#JAustin@towncountry.com,#,#Jane Austin,#,#,#;#433;#Charlie Clearfolk,#i:0#.w|towncountry.com\\CClearfolk,#CClearfolk@towncountry.com,#,#Charlie Clearfolk,#,#,#   ";
var result =  str.match(/(\w+)(?=@)/g);
document.write(result);

【讨论】:

  • 你不需要负前瞻:/(\w+)(?=@)/g
  • 哇,谢谢shafizadeh!这非常有效 - 感谢您的帮助!
  • @user1667178 不客气..
  • @sweaver2112 你说得对……我会改进的……!
猜你喜欢
  • 2018-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-22
  • 1970-01-01
  • 1970-01-01
  • 2016-12-03
  • 1970-01-01
相关资源
最近更新 更多