How to Split string with multiple rules in javascript

后端 未结 5 826
终归单人心
终归单人心 2021-01-25 03:18

I have this string for example:

str = \"my name is john#doe oh.yeh\";

the end result I am seeking is this Array:

strArr = [\'my         


        
5条回答
  •  失恋的感觉
    2021-01-25 03:40

    You have to use a Regular expression, to match all special characters at once. By "special", I assume that you mean "no letters".

    var pattern = /([^ a-z]?)[a-z]+/gi;             // Pattern
    var str = "my name is john#doe oh.yeh";         // Input string
    var strArr = [], match;                         // output array,  temporary var
    while ((match = pattern.exec(str)) !== null) {  // <-- For each match
       strArr.push( (match[1]?'&':'') + match[0]);  // <-- Add to array
    }
    // strArr is now:
    // strArr = ['my', 'name', 'is', 'john', '&#doe', 'oh', '&.yeh']
    

    It does not match consecutive special characters. The pattern has to be modified for that. Eg, if you want to include all consecutive characters, use ([^ a-z]+?).

    Also, it does nothing include a last special character. If you want to include this one as well, use [a-z]* and remove !== null.

提交回复
热议问题