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

如何使用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)資料,文中通過(guò)實(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)文章

最新評(píng)論

平和县| 通渭县| 家居| 漳浦县| 孝昌县| 阳信县| 陆河县| 修水县| 宣城市| 界首市| 高安市| 绥中县| 乌鲁木齐市| 泸州市| 湘潭县| 永济市| 黔西县| 博兴县| 肃北| 独山县| 惠安县| 崇信县| 榕江县| 隆昌县| 长汀县| 莎车县| 舟山市| 玛沁县| 铁力市| 河源市| 拉孜县| 康保县| 永嘉县| 始兴县| 青川县| 财经| 泗洪县| 深圳市| 桂东县| 乐业县| 江安县|