我有一个电影列表,当链接有焦点时,会将链接文本发送到我用于搜索功能的输入字段。 我想为电视节目做同样的事情。
我的文件目前格式为
<a href="showname s01e01.mp4">Showname s01e01</a>
我需要发送到输入字段的文本是
Showname&安培;季节= 01&安培;情节= 01
这是否可以在不更改屏幕上显示的链接文本的情况下实现?
这是我用来将文本发送到输入字段的脚本。
$(function () {
$('#rightbox a').on('focus', function () {
var text = $('#moviename');
text.val($(this).text());
var fileName =$(this).text();
fileName = fileName.replace(/\.[^/.]+$/, "");
text.val(fileName);
$Form.click();
});
});
我猜这里需要一些正则表达式,但我还没有在正则表达式上做得好。
答案 0 :(得分:1)
如果您的字符串非常简单:'Showname s01e01'那么您可以使用简单的捕获:
/^(.+?) s(\d+)e(\d+)$/
那就是:
(.+?) - Match and capture one or more characters up to a space before
s - an s
(\d+) - capture the next one or more digits
e - followed by e
(\d+) - capture the next one or more digits
从这些捕获中,您可以为输入框构建新的字符串。
$(function () {
$('#rightbox a').on('focus', function () {
var filename = $(this).text(); // like "Lost s01e02" ??
var myRegexp = /^(.+?) s(\d+)e(\d+)$/;
var match = myRegexp.exec(filename); // array of matched bits
var qryStr = match[1] + '&Season=" + match[2] + "&Episode=" + match[3];
$("#moviename").val(qryStr); // <- text box??
$Form.click();
});
});
输入'moviename'然后将包含字符串: 失物安培;季节= 01&安培;情节= 02
答案 1 :(得分:1)
或者,你可以像这样捕捉电影和节目标题:
[更新
<强> jsFiddle Demo 强>
$("#containera a").click(function() {
var title = $(this).text(),
// we check if the title has case insensitive s01e01 pattern
// if yes it's a show, otherwise it's a movie
isShow = (/s(\d+)e(\d+)/i).test(title),
rgx, rplcment;
// the regex and the replacement both depend on if it's a show or a movie
// we control it using the conditional (ternary) Operator
rgx = (isShow) ? / s(\d+)e(\d+).*/i : /(\w+(\.\w+)*)\.\w+/;
rplcmnt = (isShow) ? '&Season=$1&Episode=$2' : '$1';
title = title.replace(rgx, rplcmnt);
$('#moviename').val(title);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input id='moviename' size=50>
<div id="containera">
<a href="#">rocky.mp4</a><br>
<a href="#">rambo.avi</a><br>
<a href="#">some #movie [title] & with (dots), w3.2.5.avi</a><br>
<a href="#">lost s01e01.mp4</a><br>
<a href="#">simpsons s01e02.mkv</a><br>
<a href="#">big bang theory S02E05 [lorem ipsum] by ABC123.mp4</a><br>
<a href="#">some $other show title 3.5 S11E15.mkv</a><br>
</div>