欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何使用js正則表達(dá)式驗(yàn)證文件夾名是否符合規(guī)范

 更新時(shí)間:2023年05月27日 09:28:56   作者:yaya小小貍  
眾所周知正則表達(dá)式非常強(qiáng)大,下面這篇文章主要給大家介紹了關(guān)于如何使用js正則表達(dá)式驗(yàn)證文件夾名是否符合規(guī)范的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

背景:

git提交代碼時(shí)需要驗(yàn)證新增的文件名稱是否復(fù)合規(guī)范。具體規(guī)范如下:

全部采用小寫方式, 以中劃線分隔,用 kebab-case方式 (小寫、短橫線連接方式) 正例: scripts / styles / components / images / utils / layouts / demo-styles / demo-scripts / img / doc 反例: script / style / demo_scripts / demoStyles / imgs / docs 【特殊】VUE 的項(xiàng)目中的 components 中的組件目錄使用PascalCase格式(與駝峰法相似,單詞大寫開頭)

 因此需要驗(yàn)證普通文件名是否符合中劃線命名法(kebab-case)以及vvue的component下的文件夾 大駝峰命名法(CamelCase)

中劃線命名法(kebab-case):

思路:

1、排除文件名有空格

2、排除大寫字母

3、連接方式為其他方式比如:—— _ . 等(反推:命名中只能有小寫字母和-)

4、排除關(guān)鍵字:script style imgs docs等等

結(jié)論:

1、限定以小寫字母開頭,并且中間只包括小寫字母和-,以小寫字母結(jié)尾:/^[a-z]{1}[a-z-]+[a-z]$/。

2、排除關(guān)鍵字。

// 關(guān)鍵字
const KEYWORDS = ["script","style","imgs","docs","break","else","new","var","case","finally","return","void","catch","for","switch","while","continue","function","this","with","default","if","throw","delete","in","try","do","instranceof","typeof","abstract","enum","int","short","boolean","export","interface","static","byte","extends","long","super","char","final","native","synchronized","class","float","package","throws","const","goto","private ","transient","debugger","implements","protected ","volatile","double","import","public"]
 
// 正則:限定以小寫字母開頭,并且中間只包括小寫字母和-,以小寫字母結(jié)尾
let reg = /^[a-z]{1}[a-z-]*?[a-z]$/;
// /^[a-z]{1}[a-z-0-9]*?[a-z0-9]$/  (這個(gè)是限定以小寫字母開頭,中間小寫or數(shù)字,結(jié)尾數(shù)字。兩位數(shù)的情況下中間可以省略)
 
// 要判斷的文件名
let fileName = `xxxxx`
 
if(KEYWORDS.indexOf(fileName) > -1){
// 文件名是關(guān)鍵字
}else if( reg.test(fileName) ){ // 判斷:限定以小寫字母開頭,并且中間只包括小寫字母和-,以小寫字母結(jié)尾
// 符合要求
}else{
// 不符合要求
}

大駝峰命名法(CamelCase):

// 正則:限定以大寫字母開頭,并且中間只包括大寫or小寫字母,以小寫字母結(jié)尾
let reg = /^[A-Z]{1}[a-zA-Z]*?[a-z]$/;
 
// 關(guān)鍵字
const KEYWORDS = ["script","style","imgs","docs","break","else","new","var","case","finally","return","void","catch","for","switch","while","continue","function","this","with","default","if","throw","delete","in","try","do","instranceof","typeof","abstract","enum","int","short","boolean","export","interface","static","byte","extends","long","super","char","final","native","synchronized","class","float","package","throws","const","goto","private ","transient","debugger","implements","protected ","volatile","double","import","public"]
 
// 大寫首字母字母的關(guān)鍵字
let up_keywords = KEYWORDS.map(item=>{
    return item.charAt(0).toUpperCase() + item.slice(1); 
})
 
// 要判斷的文件名
let fileName = `xxxxx`
 
if(up_keywords.indexOf(fileName) > -1){
    // 文件名是關(guān)鍵字
}else if( reg.test(fileName) ){ // 判斷:限定以小寫字母開頭,并且中間只包括小寫字母和-,以小寫字母結(jié)尾
    // 符合要求
}else{
    // 不符合要求
}

小駝峰命名法(lowerCamelCase):

// 正則:限定以大寫字母開頭,并且中間只包括大寫or小寫字母,以小寫字母結(jié)尾
let reg = /^[a-z]{1}[a-zA-Z]*?[a-z]$/;
// 關(guān)鍵字
const KEYWORDS = ["script","style","imgs","docs","break","else","new","var","case","finally","return","void","catch","for","switch","while","continue","function","this","with","default","if","throw","delete","in","try","do","instranceof","typeof","abstract","enum","int","short","boolean","export","interface","static","byte","extends","long","super","char","final","native","synchronized","class","float","package","throws","const","goto","private ","transient","debugger","implements","protected ","volatile","double","import","public"]
// 要判斷的文件名
let fileName = `xxxxx`
if(KEYWORDS .indexOf(fileName) > -1){
// 文件名是關(guān)鍵字
}else if( reg.test(fileName) ){ // 判斷:限定以小寫字母開頭,并且中間只包括小寫字母和-,以小寫字母結(jié)尾
// 符合要求
}else{
// 不符合要求
}

補(bǔ)充:js正則匹配獲取文件名

//獲取文件名,不帶后綴
var file_name=file_path.replace(/(.*\/)*([^.]+).*/ig,"$2");

//獲取文件后綴
1.var FileExt=file_path.replace(/.+\./,"");

2.var fileExtension = file_path.substring(file_path.lastIndexOf('.') + 1);

//截取文件后綴
var reg = /\.\w+$/;
var file_name = file_path.replace(reg,'');

總結(jié)

到此這篇關(guān)于如何使用js正則表達(dá)式驗(yàn)證文件夾名是否符合規(guī)范的文章就介紹到這了,更多相關(guān)js正則驗(yàn)證文件夾名符合規(guī)范內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • innerText innerHTML的用法以及注意事項(xiàng) [推薦]

    innerText innerHTML的用法以及注意事項(xiàng) [推薦]

    我們常常需要使用另外一些對(duì)象的屬性來實(shí)現(xiàn)動(dòng)態(tài)改變其中的文本,它們就是:innerText,outerText,innerHTML,outerHTML,千萬要注意它們的大小寫,因?yàn)殄e(cuò)一點(diǎn)您就得不到預(yù)期的效果了。
    2009-05-05
  • js+h5 canvas實(shí)現(xiàn)圖片驗(yàn)證碼

    js+h5 canvas實(shí)現(xiàn)圖片驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了js+h5 canvas實(shí)現(xiàn)圖片驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 微信小程序如何實(shí)現(xiàn)數(shù)據(jù)共享與方法共享詳解

    微信小程序如何實(shí)現(xiàn)數(shù)據(jù)共享與方法共享詳解

    這篇文章主要給大家介紹了關(guān)于微信小程序如何實(shí)現(xiàn)數(shù)據(jù)共享與方法共享的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • js canvas實(shí)現(xiàn)QQ撥打電話特效

    js canvas實(shí)現(xiàn)QQ撥打電話特效

    這篇文章主要為大家詳細(xì)介紹了js canvas實(shí)現(xiàn)QQ撥打電話特效,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • js控制網(wǎng)頁(yè)背景音樂播放與停止的方法

    js控制網(wǎng)頁(yè)背景音樂播放與停止的方法

    這篇文章主要介紹了js控制網(wǎng)頁(yè)背景音樂播放與停止的方法,實(shí)例分析了javascript控制背景音樂的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 小程序?qū)崿F(xiàn)側(cè)滑刪除功能

    小程序?qū)崿F(xiàn)側(cè)滑刪除功能

    這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)側(cè)滑刪除功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • JS表單提交驗(yàn)證、input(type=number) 去三角 刷新驗(yàn)證碼

    JS表單提交驗(yàn)證、input(type=number) 去三角 刷新驗(yàn)證碼

    在進(jìn)行表單提交時(shí),需要對(duì)輸入框和文本域等的value的合理性進(jìn)行驗(yàn)證,可以編寫form的onSubmit事件,下面給大家介紹js表單提交驗(yàn)證input(type=number) 去三角 刷新驗(yàn)證碼注意事項(xiàng),一起看看吧
    2017-06-06
  • js實(shí)現(xiàn)黑白div塊畫空心的圖形

    js實(shí)現(xiàn)黑白div塊畫空心的圖形

    這篇文章主要介紹了js實(shí)現(xiàn)黑白div塊畫空心的圖形,畫出矩形、三角形、菱形、圓形,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • JavaScript模擬可展開、拖動(dòng)與關(guān)閉的聊天窗口實(shí)例

    JavaScript模擬可展開、拖動(dòng)與關(guān)閉的聊天窗口實(shí)例

    這篇文章主要介紹了JavaScript模擬可展開、拖動(dòng)與關(guān)閉的聊天窗口,實(shí)例分析了javascript實(shí)現(xiàn)可拖動(dòng)的div層相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-05-05
  • javascript深入理解js閉包

    javascript深入理解js閉包

    閉包(closure)是Javascript語言的一個(gè)難點(diǎn),也是它的特色,很多高級(jí)應(yīng)用都要依靠閉包實(shí)現(xiàn)。
    2010-07-07

最新評(píng)論