最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實(shí)現(xiàn)清除首尾空白字符再進(jìn)行空白匹配

 更新時(shí)間:2025年12月24日 08:34:57   作者:豈不聞  
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)清除首尾空白字符再進(jìn)行空白匹配的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下

1.前言

先清除字符串首尾空白字符,再進(jìn)行正則匹配。trim()確保清除字符串首尾空白字符串,match再進(jìn)行正則匹配。

const trimmedStr = str.trim();
const result = trimmedStr.match(/your-regex/);

2.代碼

function parseNameAndJob(str: string): { name: string; job: string } {
  // 處理 null、undefined、非字符串
  if (!str || typeof str !== 'string') {
    return { name: '-', job: '-' };
  }

  const trimmed = str.trim();

  // 特判:空字符串 或 僅為括號(中英文,允許中間有空格)
  if (trimmed === '' || /^[((]\s*[))]$/.test(trimmed)) {
    return { name: '-', job: '-' };
  }

  // 正則:匹配第一個(gè)左括號到第一個(gè)右括號之間的內(nèi)容
  // - 姓名部分:任意字符(可為空)
  // - 職位部分:不包含右括號的任意字符(可為空)
  const match = trimmed.match(/^(.*?)\s*[((]\s*([^))]*)\s*[))]/);

  if (match) {
    const name = match[1].trim();
    const job = match[2].trim();

    // 如果姓名為空,則 name 設(shè)為 '-'
    // 否則保留姓名;job 為空則設(shè)為 '-'
    return {
      name: name === '' ? '-' : name,
      job: job === '' ? '-' : job
    };
  }

  // 未匹配到括號結(jié)構(gòu):整個(gè)字符串作為姓名
  return { name: trimmed, job: '-' };
}

解釋:

  • ^:從開頭匹配
  • (.*?):非貪婪捕獲姓名(可為空)
  • \s*[((]:跳過空格,匹配左括號
  • ([^))]*)關(guān)鍵! 只匹配不包含右括號的內(nèi)容,確保在第一個(gè)右括號處停止
  • \s*[))]:跳過空格,匹配右括號
  • 不使用 $:避免因末尾空格或多余字符導(dǎo)致匹配失敗

調(diào)用方法輸出結(jié)果

console.log(parseNameAndJob("(產(chǎn)品經(jīng)理)"));
// 輸出: { name: '-', job: '產(chǎn)品經(jīng)理' }

console.log(parseNameAndJob("周杰()"));
// 輸出: { name: '周杰', job: '-' }

console.log(parseNameAndJob("吳磊"));
// 輸出: { name: '吳磊', job: '-' }

3.方法補(bǔ)充

js清除字符串中空白字符方法的對比

下面介紹了如何使用JavaScript的trim(), replace()方法及正則表達(dá)式去除字符串中的空白字符,重點(diǎn)比較了各種方法的適用場景,推薦最簡潔的replace(/s/g,'')操作。

let str = `  \t這是一段測試字符串,空 白\t字\f符\v測\r\n試。空 白\t字\f符\v測\r\n試。 \t`
 
console.log(`*** 原始文本 ***`)
console.log(str)
 
// 使用trim()清除空白字符
console.log(`*** trim() ***`)
console.log(str.trim())
 
// 使用replace清除空格
console.log(`*** replace(' ', '') ***`)
console.log(str.replace(' ', ''))
 
// 使用replace清除全部空格
console.log(`*** replace(/ /g, '') ***`)
console.log(str.replace(/ /g, ''))
 
// 使用replace清除全部空白字符
console.log(`*** replace(/[ \\r\\n\\t\\f\\v]/g, '') ***`)
console.log(str.replace(/[ \r\n\t\f\v]/g, ''))
 
// 使用replace清除全部空白字符
console.log(`*** replace(/\\s/g, '') ***`)
console.log(str.replace(/\s/g, ''))

運(yùn)行結(jié)果:

Javascript中判斷輸入的字符串是否為空?是否為數(shù)值?去掉首尾空格

 Javascript中判斷輸入的字符串是否為空?為數(shù)值?去掉首尾空格是最常見的3個(gè)應(yīng)用,但是如果一段時(shí)間不用,總會忘記,還是記下來比較好。

1. 是否為空?

太簡單了,取值判斷是否與""相等即可,示例函數(shù)如下:

     function isNULL(ctlID, ctlName) {
         var ctl = document.getElementById(ctlID);
         if (ctl.value == "") {
             alert(ctlName + "不能為空。");
             ctl.focus();
             return true;
         }
         return false;
     }

如果直接判斷,這樣寫:

    if(document.getElementById(ctlID).value =="") {...}

2. 是否為數(shù)值?

使用isNaN(para)函數(shù)。該函數(shù)判斷para是否不是數(shù)值。示例函數(shù)如下:

    function isNumber(num){

        return !isNaN(para);

    }

直接判斷:

    if(!isNan(document.getElementById(ctlID).value)) {...}

3. 是否為整數(shù)?

1)直接法,用正則表達(dá)式:

     function isInt(num) {
         if (num.match(/^-?[0-9]+$/) == null) return false;
         else return true;
     }

2)間接法,用parseInt()方法。因?yàn)檎麛?shù)字符串轉(zhuǎn)換為整數(shù)后長度不變,而其他情況長度會變化。所以可以用此判斷輸入是否為整數(shù)。

     function isInt(num) {
           var ctlInt = 1 + parseInt(ctlValue) ; //加1是為了去除負(fù)號“-”的影響
            if(ctlInt == ctlValue) return true;
            else return false;
     }

4. 是否為浮點(diǎn)數(shù)?

用“3.”的直接法,只要更換相應(yīng)的正則表達(dá)式即可,如:

  • ^/d+$" //非負(fù)整數(shù)(正整數(shù) + 0)
  • ^[0-9]*[1-9][0-9]*$" //正整數(shù)
  • ^((-/d+)|(0+))$" //非正整數(shù)(負(fù)整數(shù) + 0)
  • ^-[0-9]*[1-9][0-9]*$" //負(fù)整數(shù)
  • ^-?/d+$" //整數(shù)
  • ^/d+(/./d+)?$" //非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0)
  • ^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮點(diǎn)數(shù)
  • ^((-/d+(/./d+)?)|(0+(/.0+)?))$" //非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0)
  • ^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //負(fù)浮點(diǎn)數(shù)
  • ^(-?/d+)(/./d+)?$" //浮點(diǎn)數(shù)

備注:即使判斷同一種對象,正則表達(dá)式的寫法也有多種,優(yōu)劣只能自己判斷。

5. 去除首尾空格

用正則表達(dá)式:

1)原型法,也就是為字符串類型提供去掉首尾空格的函數(shù):

     String.prototype.trim = function() {
         return this.replace(/(^/s*)|(/s*$)/g, "");
     }

2)一般函數(shù),返回去掉首尾空格后的字符串:

     function trim(str) {
         return str.replace(/(^/s*)|(/s*$)/g, "");
     }

到此這篇關(guān)于JavaScript實(shí)現(xiàn)清除首尾空白字符再進(jìn)行空白匹配的文章就介紹到這了,更多相關(guān)JavaScript清除首尾空白字符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

布尔津县| 黔西| 冀州市| 巩留县| 高邮市| 蓬溪县| 清水河县| 施秉县| 盐源县| 锡林浩特市| 屯留县| 金昌市| 团风县| 绥阳县| 泉州市| 新竹县| 祁东县| 河北区| 仁怀市| 海宁市| 广平县| 连城县| 元阳县| 信丰县| 禹州市| 建德市| 浏阳市| 广宁县| 永定县| 七台河市| 鹤庆县| 布拖县| 喜德县| 五华县| 遂平县| 宣城市| 万宁市| 崇阳县| 建平县| 石柱| 锡林浩特市|