Javascript 属性值的正则表达式
我有一个可以接受不同格式作为值的属性:Javascript 属性值的正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我有一个可以接受不同格式作为值的属性: 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
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代码)您可以使用以下内容:
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!");
}
如果您需要使用单个正则表达式,则应该这样做:
/^((?=\S*\s)[\w-]+|\w+)[\s-](\S.*)/
基于这样一种逻辑:如果有空格,它就是分隔符,否则-
就是分隔符。第一组将所有内容匹配到分隔符,第二组将其余内容匹配到分隔符
:
另一方面,您不必使用如此复杂的表达式。 像这样简单的事情可以做到:
function split(str){
var arr = str.split(' ');
if(arr.length == 2) return arr;
return str.split('-');
}
是的,这是可能的,并且正是正则表达式为您所做的。您是否尝试自己编写此代码?警告:format1是Format2的一个子集我对正则表达式的使用不多,我现在正在深入研究。我的主要问题是,是否可以比较格式并检索每种格式的值,因为据我所知,正则表达式仅用于比较格式。
function split(str){
var arr = str.split(' ');
if(arr.length == 2) return arr;
return str.split('-');
}