【问题标题】:A regex for validate image name using in javascript用于在 javascript 中验证图像名称的正则表达式
【发布时间】: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_THAILA‌​ND.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


【解决方案1】:

名称中没有斜杠,但您的正则表达式需要斜杠。

【讨论】:

    最近更新 更多