var test = "100pxpxpxpx";
test.replace(/[^0-9|px]$/g, '')
我想要的输出是:“100px”,但我得到以下内容,如何实现?
"100pxpxpxpx"
答案 0 :(得分:1)
使用if ((is_callable($this->methodFilter)?$this->methodFilter($name):true))
px
的多个匹配项替换为px
个(px)+
var test = "100pxpxpxpx";
test.replace(/[^0-9]+(px)+$/g, 'px');
答案 1 :(得分:1)
您可以使用单个px捕获数字 - 忽略额外内容
var test = "100pxpxpxpx";
test.replace(/^([0-9]+px).*$/g, '$1');
^([0-9]+px).*$
答案 2 :(得分:0)
[^0-9|px]$
正则表达式匹配字符串最后一位不是数字的1个字符,而不是|
,p
和x
。
我建议匹配而不是替换:
var test = "100pxpxpxpx";
document.body.innerHTML = test.match(/^[0-9]+px/);
请参阅regex demo
正则表达式匹配:
^
- 字符串开头[0-9]+
- 一个或多个数字px
- 文字px
子字符串。如果您需要更换:
(px)[^0-9]+$
并替换为$1
。
请参阅another demo
var test = "100pxpxpxpx";
document.body.innerHTML = test.replace(/px[^0-9]+$/, 'px');