2013-09-23 15 views
2

第一個問題 - 以下分割代碼是否可以分割由隨機符號分隔/分隔的值?我是說任何可能的符號?如何在使用regexp.split時保留分隔符

value.split(/[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]/g); 

我想找到一個簡單的正則表達式的作品在任何字符分割中的任何值,例如像在該組數據低於

  • XX-YY-ZZ
  • XX/YY/ZZ
  • XX \ YY \ ZZ
  • XX * YY ZZ *
  • xx_yy_zz
  • XX^YY^ZZ
  • 以及任何其他組合

第二個問題 - 說,如果我用的第一個問題的正則表達式來拆分每一個數據,我怎麼能知道是什麼符號,它被用來分割每個數據?如果可能,我想保留這個符號,因爲我可能想再次使用它來再次加入xx,yy和zz。

+1

其實,如果你使用'value.split(/([ - !$%^&*()_ + |〜='{} \ [\]:「;'<>?,。\ /]]/g)',我想你也可以得到符號,就像[this](http://jsfiddle.net/hari_shanx/yUvqC/)。如果這是你想要的,我會添加它這是一個答案。 – Harry

+0

[只是說]你也可以在這裏使用'match'而不是'split'。像這樣 - '(「xx-yy-zz」)。match(/ [^ - !$%^&*()_ + |〜= \'{} \ [\]:「;'<> ?, 。/ /] +/g);'。 –

+0

因此,如果我做var value =(「xx-yy-zz」)。match(/ [^ - !$%^&*()_ + |〜=' {} \ [\]:?「;」<>,\ /] + /克); ,我將能夠得到日期中使用的分隔符號嗎? –

回答

3

第一個問題 - 我沒有看到任何理由。在詢問之前嘗試。

第二個問題 - 這將增加分割字符到結果數組 -

/([-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/])/g 

然後xx-xx^xx&xx將變成['xx', '-', 'xx', '^', 'xx', '&', 'xx' ]

另一種方法是迭代的正則表達式匹配分裂istead一次

+0

+1,同樣的選項,因爲我只是發表評論:) – Harry

+0

我試過這段代碼 _date = date.split(/ [ - !!%^ ^&*()_ + |〜= {} \ [\]: 「;'<>?,。\ /]/g); 我使用的數據是dd-mm-yyyy 但是在拆分之後,我只有[」dd「,」mm「,」yyyy「,readUInt8 :function,readUInt16LE:function,readInt16LE:function,readUInt32LE:function,readDoubleLE:function ...]在檢查器上它沒有顯示陣列上的符號我錯過了什麼嗎 –

+0

@FredA:你試過小提琴I已經發表了評論(在問題的下面)?它基本上和SergeS的答案一樣。 – Harry

相關問題