属性值的正则表达式
Regular expressions for property values
我有一个可以接受不同格式作为值的属性:
format1 - 2 values separated by space
ex1: left center
ex2: center bottom
format2 - 2 values separated by space, each one can have 1 or 2 values separated by "-"
ex1: left-right center
ex2: center top-bottom
format3 - 2 values separated by "-"
ex1: left-diag
ex2: right-diag
现在我正在拆分字符串并使用一系列 if 块来确定格式和值。
在这种情况下,是否可以使用正则表达式来找出格式并检索每种格式的值?
(JavaScript 代码)
如果您需要使用单个正则表达式,这应该可以做到:
/^((?='S*'s)['w-]+|'w+)['s-]('S.*)/
基于逻辑,如果有空格,它是分隔符,否则-
是分隔符。第一组将所有内容与分隔符匹配,第二组将其余部分匹配。
用法示例:
function split(str){
var m = str.match(/^((?='S*'s)['w-]+|'w+)['s-]('S.*)/);
m.shift();
return m;
}
alert(split("foo bar"));
alert(split("foo-bar baz"));
alert(split("baz foo-bar"));
alert(split("baz-foo"));
另一方面,您不必使用如此复杂的表达式。像这样简单的事情就可以了:
function split(str){
var arr = str.split(' ');
if(arr.length == 2) return arr;
return str.split('-');
}
你可以使用类似这样的东西:
var regex = /^('w+)$/g;
var data;
if(regex.test(data)) {
var matches = data.match(regex);
for(var match in matches) {
console.log(matches[match]);
}
} else {
console.log("No matches found!");
}
相关文章:
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- javascript正则表达式,用于编辑元素内部的css样式属性
- 与任何元素的 .innerHTML 属性匹配的 JavaScript 正则表达式
- 使用正则表达式删除所有 html 属性(替换)
- Javascript 属性名称上的正则表达式
- 输入元素模式属性的Javascript正则表达式在reFiddle上有效,但在页面上无效
- 如何生成一个正则表达式,用以这种方式命名的类的属性值替换标记{{name}}
- 使用正则表达式matchget-error无法读取属性“”;0”;从null
- 数据属性中的Javascript正则表达式
- 如何使用正则表达式从javascript/jquery中的属性值中提取文本
- 为什么我的 Javascript 中的两个正则表达式文本在一个属性上有所不同
- 如何编写将获取属性文本的正则表达式
- JavaScript正则表达式匹配不在特定属性中的任何内容
- 属性值的正则表达式
- JavaScript 用具有特定 ID 的正则表达式 img 标记替换,但其他属性可以是任何属性
- 正则表达式第一个结果($ 1)替换为变量的属性
- JavaScript正则表达式:找到一个标签并获取一些属性值
- 使用正则表达式时出现 Javascript 错误 - 对象不支持此属性或方法
- 与正则表达式一起使用时无法读取属性长度 null 错误
- 具有 CSS 属性的正则表达式