1

さまざまな形式を値として受け入れることができるプロパティがあります。

format1 - 2 values separated by space
ex1: left center
ex2: center bottom

format2 - 2 values separated by space, each one can have 1 or 2 values separated by "-" 
ex1: left-right center
ex2: center top-bottom

format3 - 2 values separated by "-"
ex1: left-diag
ex2: right-diag

現在、文字列を分割し、一連のifブロックを使用して、形式と値を把握しています。

この場合、正規表現を使用して形式を把握し、各形式の値を取得することはできますか?

(JavaScriptコード)

4

2 に答える 2

2

単一の正規表現を使用する必要がある場合は、次のようにします。

/^((?=\S*\s)[\w-]+|\w+)[\s-](\S.*)/

スペースがある場合は区切り文字、そうでない場合は区切り文字という論理に基づいてい-ます。最初のグループはすべてを区切り記号に一致させ、2 番目のグループは残りを一致させます。

使用例

function split(str){
  var m = str.match(/^((?=\S*\s)[\w-]+|\w+)[\s-](\S.*)/);
  m.shift();
  return m;
}

alert(split("foo bar"));
alert(split("foo-bar baz"));
alert(split("baz foo-bar"));
alert(split("baz-foo"));​

一方で、そのような複雑な式を使用する必要はありません。これが行うのと同じくらい簡単なこと:

function split(str){
  var arr = str.split(' ');
  if(arr.length == 2) return arr;
  return str.split('-');
}
于 2012-06-11T22:08:23.443 に答える
0

これに沿って何かを使用できます:

var regex = /^(\w+)$/g;
var data;
if(regex.test(data)) {
    var matches = data.match(regex);
    for(var match in matches) {
        console.log(matches[match]);
    } 
} else {
    console.log("No matches found!");
}
于 2012-06-11T22:02:42.737 に答える