[英]How do I slice a string if whitespace is detected?
我有一些字符串一個接一個地出現。 如果長度超過15個字符,我想在15個字符之后切片所有內容,但不是在檢測到空格之前(為了保持可讀性)。
我的邏輯目前是這樣的:
const text = "Microsoft Server 2012 R2"; // text.length = 24
let newStr = '';
if(text.length > 15 ){ // true
newStr = text.slice(0, 15)
}
console.log(newStr);
// Desired output: "Microsoft Server
// Current output: "Microsoft Serve"
您可以使用此正則表達式替換來完成工作。 在輸入的前15個字符后,這匹配0個或更多非空白字符。
var s = 'Microsoft Server 2012 R2' var r = s.replace(/^(.{15}\\S*).*$/, '$1') console.log(r) //=> Microsoft Server
您可以使用[^]{15}
/ [\\s\\S]{15}
匹配任何前15個字符,然后將0個或更多非空白字符與\\S*
匹配:
const text = "Microsoft Server 2012 R2"; let newStr = (m=text.match(/^[^]{15}\\S*/)) ? m[0] : ""; console.log(newStr);
請注意.
匹配比換行符字符以外的任何字符,這就是為什么我建議[^]
非無)或它的等效便攜式[\\s\\S]
/ [\\d\\D]
/ [\\w\\W]
您可以匹配第一個想要的字母並取出字符直到找到空格。
var string = "Microsoft Server 2012 R2", short = string.match(/^.{15}[^ ]*/)[0]; console.log(short);
function hasWhiteSpace(SubText) {
return /\s/g.test(SubText);
}
調用此函數並檢查子字符串中的空格,即SubText,它是文本的子字符串,直到15個字符。 因此,如果該子字符串包含空格,您將獲得一個boolen值。 此功能還將測試TABs Present。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.