我试图弄清楚如何用最多两次中断替换多个中断(class Button extends React.Component {
constructor(props) {
super(props);
this.state = {
isDown: false
};
}
toggleClass() {
this.setState(prevState => ({ isDown: !prevState.isDown }));
}
render() {
return (
<button
className={this.state.isDown ? "btnDown" : ""}
onMouseDown={e => this.toggleClass(e)}
onMouseUp={e => this.toggleClass(e)}
{...this.props}
/>
);
}
}
export class Buttons extends React.Component {
render() {
return (
<div className="btn-wrap">
<Button value="1">1</Button>
<Button value="2">2</Button>
....
</div>
);
}
}
)。我使用trimmingCharacters(in:)来删除字符串周围的所有空格和新行,但我无法弄清楚如何删除字符串中的空格,或者更确切地说:我怎么能替换2个以上的休息时间呢?最多2次休息?
如果用户在textView中写入单词之间有空格,则字符串将为:
\n
"Hello
I like coffee"
答案 0 :(得分:4)
您可以直接在extension String {
func trimString() -> String {
return replacingOccurrences(of: "\\n{3,}", with: "\n\n", options: .regularExpression)
}
}
上执行正则表达式替换:
\n{3,}
std::unique_ptr<std::vector<int>>
模式匹配三个或更多换行符。
答案 1 :(得分:0)
我通过使用正则表达式\n{2,500}
解决了这个问题,并用"\n\n"
替换了全部。
它运作完美!
extension String {
func trimString() -> String {
let pattern = "\n{2,500}"
let regex = try! NSRegularExpression(pattern: pattern, options: .dotMatchesLineSeparators)
let range = NSMakeRange(0, self.count)
let trimmedString = regex.stringByReplacingMatches(in: self, options: .reportProgress, range: range, withTemplate: "\n\n")
return trimmedString
}
}