-2

次の形式の変数が渡されます。

var fubar = e2s2

さて、文字は常に同じですが、数字は変わります。数字は 1 ~ 9 のみです。最終結果には、次のようなものが必要です。

var foo = e2
var bar = s2

私も数だけで解決します。数字さえあればいいんです。

4

5 に答える 5

3

常にこの形式である場合、正規表現は必要ありません。

var foo = fubar.substr(0,2),
    bar = fubar.substr(2);

..または、数字だけが必要な場合:

var foo = fubar.substr(1,1),
    bar = fubar.substr(3);

正規表現ソリューションが本当に必要な場合は、次の方法はどうですか。

var digits = fubar.replace(/\d/g, '').split(''),
    foo    = digits[0],
    bar    = digits[1];

それについて行く百万の方法。ただし、実際に必要でない限り、正規表現は避けてください。

乾杯

于 2012-10-19T17:53:17.757 に答える
1

これはsplit method

(?![1-9])

また

(?=[^1-9])

ノート:

(?![1-9]|^)結果の配列に含まれる空白スペースを避けるために使用します

于 2012-10-19T17:53:54.437 に答える
1
var fubar = 'e2s2' ;

var foo = fubar.substr(0,2) ;
var bar = fubar.substr(2);

フィドル

于 2012-10-19T17:54:25.613 に答える
1

置換での正規表現の使用。次のコードが機能します

var fubar = "e2s2";
var a = fubar.replace(/\d/g, function(arg){ return arg+ ","}).split(",");
a.pop(); // removing last item.
var foo = a[0];
 var bar = a[1];
于 2012-10-19T17:55:55.033 に答える
0

要素が常に1桁以外の文字の後に1桁の文字が続く形式である場合は、次を使用します。

elements = str.split(/(?=\D)/) 

配列内の完全な要素を取得します。数字(数字)の配列だけを取得するには、

(numbers = str.split(/\D/)).splice(0, 1);
于 2012-10-19T18:14:52.363 に答える