6c81748b9239e96e
毎回ランダムな文字列を一致させようとしています。以下のコードを使用します。私の問題は、文字列全体と一致し、文字と数字を含むランダムな文字列のみが必要なことです。
弦
<a href="playgame.aspx?gid=4&tag=6c81748b9239e96e">Play</a>
JavaScript 正規表現
string.match(/\&tag\=[A-Za-z0-9]+\"\>/i);
6c81748b9239e96e
毎回ランダムな文字列を一致させようとしています。以下のコードを使用します。私の問題は、文字列全体と一致し、文字と数字を含むランダムな文字列のみが必要なことです。
弦
<a href="playgame.aspx?gid=4&tag=6c81748b9239e96e">Play</a>
JavaScript 正規表現
string.match(/\&tag\=[A-Za-z0-9]+\"\>/i);
正規表現グループを使用して照合し、後で目的のパターンにアクセスできます。使用する必要のある正規表現は次のようになります/\&tag\=([A-Za-z0-9]+)\"\>/i
。丸括弧((
および)
)は、キャプチャするグループを示します。次に、ここに示すようにキャプチャグループにアクセスできます。
編集:詳しく調べてみると、間違った正規表現を使用している可能性があります。私はJavascriptの正規表現にあまり慣れていませんが、必須ではないandとandをエスケープしている&
よう=
です>
。代わりにこれを試してください:/&tag=([A-Za-z0-9]+)\">/i
。
これが私の提案です:
@Artem Bargerによって提供されたスニペットをコードに追加します:httpsstr
://stackoverflow.com/a/901144/851498ただし、(引数を追加して)少し変更する必要があります。
function getParameterByName( name, str )
{
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec( str );
if(results == null)
return "";
else
return decodeURIComponent(results[1].replace(/\+/g, " "));
}
このように使用します。
var str = getParameterByName( 'tag', string );
Jsfiddleデモ:http ://jsfiddle.net/Ralt/u9MAv/
var myregexp = /(&tag=)([A-Za-z0-9]+)\b/img;
var match = myregexp.exec(subject);
while (match != null) {
for (var i = 0; i < match.length; i++) {
// matched text: match[i]
}
match = myregexp.exec(subject);
}
あなたの正規表現
&tag=([A-Za-z\d]+)"
簡略化されており(エスケープしすぎました)、グループ1に必要なものを入れるために括弧が追加されました
JavaScriptでは、これは次のようになります
var myregexp = /&tag=([A-Za-z\d]+)"/;
var match = myregexp.exec(subject);
if (match != null) {
result = match[1];
} else {
result = "";
}
説明
Match the characters “&tag=” literally «&tag=»
Match the regular expression below and capture its match into backreference number 1 «([A-Za-z\d]+)»
Match a single character present in the list below «[A-Za-z\d]+»
Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
A character in the range between “A” and “Z” «A-Z»
A character in the range between “a” and “z” «a-z»
A single digit 0..9 «\d»
Match the character “"” literally «"»