Javascript RegExp - 我正在斗鸡眼
Javascript RegExp - I'm getting cross-eyed
这看起来很简单,但我就是做不好。
我正在尝试将参数解析为函数,即(a) 带有嵌入 WIDTHxHEIGHT 的文件名 --或 --(b) 没有宽度x高度的文件名 --或--(c) 只是一个宽度x高度
似乎我应该能够用一个单一的正则表达式来做到这一点......
// PROCESS CORRECT SYNTAX
chopUp("abc300x150.jpg"); // should return: abc, 300, 150, .jpg - works
chopUp("abc.jpg"); // should return: abc, , , .jpg - doesn't work
chopUp("300x150"); // should return: , 300, 150, - works
// PROCESS "IN-CORRECT" SYNTAX
chopUp("abc300x.jpg"); // should return: abc300x, , , .jpg - doesn't work
chopUp("abcx150.jpg"); // should return: abcx150, , , .jpg - doesn't work
function chopUp(str) {
var m = str.match( /(.*?)(?:('d{2,5})x('d{2,5})*)((?:'..{3,4})*)/ );
if (m != null) {
console.log("Prefix: " + m[1] + "'nWidth: " + m[2] + "'nHeight: " + m[3] + "'ndotExt: " + m[4] + "'n");
} else {
console.log("m is null");
}
return(m);
} // function chopUp
怎么样:
var m = str.match( /^(.*?)(?:('d{2,5})x('d{2,5}))?('..+?)$/ );
相关文章:
- RegExp:匹配Javascript中除regex值之外的所有内容
- JavaScript正则表达式文本与RegExp对象
- 使用RegExp查找url中的字符
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- 全局标志仅与第一个匹配项匹配的Regexp
- javascript RegExp的奇怪行为:相同的正则表达式会产生不同的结果
- 替换为javascript中的regExp
- Javascript Regexp-不接受空格,但应该接受
- javascript中换行的regexp
- 带有多个修饰符的JavaScript RegExp
- Regexp奇怪地不起作用
- RegExp匹配任意字符串+8位数字
- 使用RegExp获取一系列单词,这些单词前后可能有空格,也可能没有空格
- RegExp-如何匹配尽可能短的金额
- javascript:查找/替换regexp帮助-粗体、斜体和特定字符
- javascript RegExp不't过滤器编号
- 在javascript regexp中捕获多个变量的一种更简单的方法
- Javascript:如何通过Regexp从属性中提取字符串
- javascript regexp,用于验证一开始没有http的url
- Javascript RegExp - 我正在斗鸡眼