我希望匹配表示相对(任意)单位的字符串部分。例如“+ = 50foo”,“ - = 300bar”,“ - 3%”。我大部分时间都在那里,但我得到一些输入的奇怪错误,我没有看到模式或修复。
var myRegEx = new RegExp( "^([+-])=(\\d+\.?\\d*)(\\D+)$", "i" );
console.log(myRegEx.exec("-=5%")); // good
console.log(myRegEx.exec("+=3.14wigs")); // good
console.log(myRegEx.exec("+=50px")); // broken: "50p", "x"
console.log(myRegEx.exec("+=49999999px")); // broken: "49999999p", "x"
console.log(myRegEx.exec("+=100em")); // broken: "100e" , "m"
答案 0 :(得分:1)
这应该有用(请注意点附近的其他\
):
var myRegEx = new RegExp( "^([+-])=(\\d+\\.?\\d*)(\\D+)$", "i" );
答案 1 :(得分:1)
这是一个更清洁的解决方案:
var myRegEx = /^([+-])=(\d+\.?\d*)(\D+)$/i;
由于双引号字符串执行自己的转义,因此您的解决方案没有正确地双重转义句点(您有\。,需要\\。)。为了简单起见,我根本没有使用字符串。
行动中的示例: http://jsfiddle.net/sNd9W/2/
答案 2 :(得分:-1)