我有一个由三个数字组成的变量,由"分隔。"前两个数字是ID,最后一个是代表号。例如在" 3.4.1" ID将是" 3.4。"和代表" 1"。我想分割数字,只保留" ID"数字作为新变量。虽然我能够得到我想要的东西,但我确信必须有一种更简单的方法来解决这个问题。这是一个玩具示例:
function AddLoginModalEvent(){
let event = document.createEvent('Event');
event.initEvent('addLoginModal', true, true);
document.dispatchEvent(event);
}
class LoginModal extends React.Component {
constructor(){
super();
this.state = {
showModal:'none'
}
}
componentDidMount() {
document.addEventListener('addLoginModal', (e) => {
this.showModal();
}, false);
$('.ui.modal').modal({detachable: false});
}
showModal(){
this.setState({ showModal:'inherit' });
$('.ui.modal.editform').modal('show');
}
closeModal(){
this.setState({ showModal:'none'});
}
render() {
const style = { display:this.state.showModal, top:'50px' };
const close = <div className="ui black deny button" onClick={this.closeModal}> Nope </div>;
return (
<div>
<AddLoginModal style={style} title="Login" close={close} />
</div>
);
}
}
class AddLoginModal extends Component{
render(){
return(
<div style={this.props.style}>
<div className="ui modal editform">
<div className="ui middle aligned center aligned grid">
<div className="column">
<h2 className="ui teal image header">
<div className="content">
Log-in to your account
</div>
</h2>
</div>
</div>
</div>
</div>
)
}
}
export default LoginModal;
有什么建议吗?
答案 0 :(得分:1)
我们可以使用sub
来匹配.
(转义点\\.
,因为它是元字符),后跟一个或多个不是点的字符({{1} })直到字符串结尾并用[^.]+
替换它。
""
如果我们最后也需要d$ID <- sub("\\.[^.]+$", "", d$plant)
d$ID
#[1] "2.3" "2.3" "1.2" "1.2" "12.3" "12.3"
(这似乎不太可能)
.