正则表达式或jquery在特定字符后分割字符串

时间:2012-03-07 19:31:28

标签: javascript jquery regex

我有一个这样的字符串:

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

我需要在' - '之后提取所有内容,包括破折号本身并在第二行输出它。如何在' - '之前提取所有内容?正则表达式还是jquery?

' - '前面的字符串将是动态的,可能有不同数量的字母......

3 个答案:

答案 0 :(得分: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()方法相反。

答案 1 :(得分: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);

答案 2 :(得分:1)

可能不需要正则表达式或jquery。这应该这样做:

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

理想情况下,您的数据将存储在两个单独的字段中,因此您无需担心拆分字符串以进行显示。