【发布时间】:2017-01-25 13:38:10
【问题描述】:
在我的应用程序中,我将图像名称(并且只有名称而不是 url)保存在我的数据库中。我从他们的网址中提取名称。数据库字段的最大长度为 40。所以图像模式必须是这样的:
LEETERS NOT IMPORTANT + "/" + 36 个字母 + "." + "jpg/png/bmp/gif" = 40
我创建了一个模式并将其用于文本框:
<asp:TextBox ID="txtFirstSrc" runat="server" CssClass="firstImage imgUrl largeBox numberOrEnglish"
pattern="[A-Za-z0-9._/%:+-]+\/[A-Za-z0-9._/%+-]{0,36}\.+(jpg|png|gif|bmp|JPG|PNG|GIF|BMP)"></asp:TextBox>
而且效果很好。现在我想在 javascript 中使用它,但是为了这个搅拌:
2013-10-10T094007Z_1042484401_GM1E9AA1CN101_RTRMADP_3_THAILAND.jpg
var isNameValid = "[A-Za-z0-9._/%:+-]+\/[A-Za-z0-9._/%+-]{0,36}\.+(jpg|png|gif|bmp|JPG|PNG|GIF|BMP)".test(file.name);
不起作用,还有这个:
var isNameValid = /^[A-Za-z0-9._/%:+-]+\/[A-Za-z0-9._/%+-]{0,36}\.+(jpg|png|gif|bmp|JPG|PNG|GIF|BMP)$/.test(file.name);
总是错误的。问题是什么?谢谢。
【问题讨论】:
-
尝试在最后一个模式中转义
/?测试字符串是什么? -
测试字符串是从其url中提取的图像名称。
-
file.name 中有什么内容?您需要显示 file.name 中的实际内容。
-
2013-10-10T094007Z_1042484401_GM1E9AA1CN101_RTRMADP_3_THAILAND.jpg
-
@FarzinKanzi 好的,我发布了答案,所以你可以关闭它。您问为什么有人否决了您的问题,我认为这是因为您没有提供足够的信息让人们看到问题所在。如您所知,如果不查看文件名中的内容,很难看出可能是什么问题。当你调试这样的问题时,你首先应该检查字符串中的实际内容。
标签: javascript regex