2011-09-23 12 views
3

考えると、文字列JavaScriptで複数の部分文字列のうちの最初の文字列に文字列を分割するにはどうすればよいですか?文字列を分割:されて、私は "ABC" に "ABC" と "defbarghi" とs2にS1を分割し、 "defooghi" するにはどうすればよい

s1 = "abcfoodefbarghi" 

s2 = "abcbardefooghi" 

文字列 "foo"または "bar"のいずれかが最初に現れるときに2つになる

これはs.split(/regexp/)で行うことができますが、この正規表現はどのようなものでしょうか?

+0

この質問を見てみましょう。 [一度JavaScriptのスプリット文字列](http://stackoverflow.com/questions/2878703/split-string-once-in-javascript) –

答えて

3

このように正規表現を使用しますREの

var match = s1.match(/^([\S\s]*?)(?:foo|bar)([\S\s]*)$/); 
/* If foo or bar is found: 
    match[1] contains the first part 
    match[2] contains the second part */ 

は説明:

  • (foo|bar)ある

    • [\S\s]*?試合REの次の部分を一致させるだけで十分な文字を、 「foo」または「bar」のいずれか
    • [\S\s]*は、残りの文字と一致します

    REの一部を囲む括弧は、グループ化された一致を参照できるようにグループを作成し、(?:)は参照不可能なグループを作成します。

  • +1

    この作品、よく説明されています。最後に、**最後のオカレンスにマッチして分割文字列を取得する必要があったので、/ ^([\ S \ s] *)(foo | bar)([\ S \ s] *? )$/'。ありがとうございました。 –

    2
    str.replace(/foo|bar/,"\x034").split("\x034") 
    

    アイデアは、特別な(見えない)文字列の最初の出現を交換して、この文字列に対して分割されています。

    関連する問題