:正規表現:問題作成のマッチングパターンこれに一致するように正規表現を考え出すいくつかの問題を抱えて
function Array() { [native code] }
は、私が唯一の「アレイ」はここで発生しますテキストに一致しようとしています。
:正規表現:問題作成のマッチングパターンこれに一致するように正規表現を考え出すいくつかの問題を抱えて
function Array() { [native code] }
は、私が唯一の「アレイ」はここで発生しますテキストに一致しようとしています。
変数がjavascriptでどのような型かを調べようとしていますか?それはあなたがちょうどあなたがそれを作成したと思うコンストラクタにオブジェクトのコンストラクタを比較することができますしたいものだ場合:
var array = new Array();
if(array.constructor == Array)
alert("Is an array");
else
alert("isn't an array");
これは本当にJavaScriptで物事を行くための最善の方法ではありません。 JavascriptにはC#のような型システムはありません。これは、JavaScriptがかなり動的な言語であり、オブジェクトがそのコンストラクタから取得するものは実行時に上書きできるため、変数が特定のコンストラクタによって作成された場合、
代わりに、それはダックタイピングを使用すると、彼らはむしろ彼らが何であるかよりも、何ができるか、あなたのオブジェクトを依頼する本当に良いでしょう: http://en.wikipedia.org/wiki/Duck_typing
if(typeof(array.push) != "undefined")
{
// do something with length
alert("can push items onto variable");
}
Perlでは、あなたが使用したい:
m/^\s*function\s+(\w+)\s*\(/;
変数 '$1
は' 関数名をキャプチャします。
function
キーワードが行の先頭にない可能性がある場合は、少しずつ作業する必要があります。
[編集:2つの '\s*
' 配列が追加されました。]
これが機能するかどうかについての質問を...ここに私のテストケースです:
テストスクリプト:
while (<>)
{
print "$1\n" if (m/^\s*function\s+(\w+)\s*\(/);
}
テスト入力行(はい、故意にミスアライン):
function Array() { ... }
function Array2 () { ... }
func Array(22) { ... }
テスト出力:Solaris 10でのPerl 5.10.0(SPARC)でテストされて
Array
Array2
:私は、プラットフォームやバージョンが重要な要因であるとは考えていない - 私はそれが同じで動作するように期待Perlのもっともらしいバージョン。
ので、その後、私はほとんど機能している、これを得ている:
[function\s]((\S+)+)(?=\(\))
しかし、これはまだ前のスペースに一致します。
'['、 ']'を削除してください。 – Gumbo
あなたの質問は非常に不透明だと思います。 – Cerebrus
それは私の文字列です。 「配列」のテキストが変更されます。だから私はそれにマッチさせようとしている。 – Geuis
"function"と "()"の間でテキストを一致させようとしていますか? – Goran