簡體   English   中英

如果檢測到空格,我如何切割字符串?

[英]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 

RegEx演示

您可以使用[^]{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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM