2012-03-07 93 views
1

后拆分字符串我有一个这样的字符串:正则表达式或jquery的某些字符

方济圣弗朗西斯健康 - 印第安纳波利斯

我需要后提取的一切“ - ”,包括仪表板本身并输出在第二行..我如何提取一切之前' - '??正则表达式还是jQuery?

盈的字符串“ - ”将是动态的,可以有不同数量的信...

回答

10

都不是。我只想用字符串原生.split()功能:

var myString = 'Franciscan St. Francis Health - Indianapolis'; 
var stringArray = myString.split('-'); 
//at this point stringArray equals: ['Franciscan St. Francis Health ', ' Indianapolis'] 

一旦你已经装箱的stringArray变量,可以输出原始的字符串的作品在任何你想要的方式,例如:

alert('-' + stringArray[1]); //alerts "- Indianapolis" 

编辑
要解决评论者的后续问题:“如果连字符后面的字符串中有另一个连字符,该怎么办?”

在这种情况下,你可以做这样的事情:

var myString = 'Franciscan St. Francis Health - Indianapolis - IN'; 
var stringArray = myString.split('-'); 
//at this point stringArray equals: ['Franciscan St. Francis Health ', ' Indianapolis ', ' IN'] 

alert('-' + stringArray.slice(1).join('-')); //alerts "- Indianapolis - IN" 

两个.slice().join()是JS本地Array方法和join()是以前使用的.split()法是相反的。

+0

如果连字符后面的字符串中有另一个连字符,例如“Something something - Wilkes-Barre”,该怎么办?示例中连字符后面的一位是城市的名称,并且有城市的名字连字符... – nnnnnn 2012-03-07 20:30:43

2

正则表达式或jquery的?

False dichotomy。使用String.splitMDN

var tokens = 'Franciscan St. Francis Health - Indianapolis'.split('-'); 
var s = tokens.slice(1).join('-'); // account for '-'s in city name 
alert('-' + s); 
+0

虚假二分法?必须弹出维基百科..:D – 2012-03-07 20:12:34

+0

如果连字符后面的字符串中有另一个连字符,例如“Something something - Wilkes-Barre”,该怎么办? – nnnnnn 2012-03-07 20:31:59

+0

@nnnnnn会发生不好的事情。已更新 – paislee 2012-03-07 20:51:23

1

可能不需要正则表达式或jQuery。这应做到:

var arr = 'Franciscan St. Francis Health - Wilkes-Barre'.split('-'); 
var firstLine = arr[0] 
var secondLine = arr.slice(1).join('-'); 

理想情况下,你的数据将被存储在两个不同的领域,所以你不必担心对显示分割的字符串。

相关问题