我有一个字符串:
string = "abc_test_dashboard.json";
Run Code Online (Sandbox Code Playgroud)
字符串的值可能会有所不同:
"tes.test.dashboard.json"
"jhgwefj-gfjh.widget.json"
Run Code Online (Sandbox Code Playgroud)
最后一个"dashboard.json"和"widget.json"是静态的,可能是其中任何一个,具体取决于条件.
基本上我正在尝试从字符串中识别它的"仪表板"或"小部件".
我想做的事基于:
if ("dashboard.json") {//do some stuff}
else { // do something else
}
Run Code Online (Sandbox Code Playgroud)
我也意识到我可能有多个同名文件,因此我最终可能得到(1),(2)后缀,即:"abc_test_dashboard(1).json","abc_test_dashboard(2).json".有没有办法测试这种情况?
谢谢
你可以做到
if(string.endsWith('dashboard.json')) {
}
if(string.endsWith('widget.json')) {
}
Run Code Online (Sandbox Code Playgroud)
如果您愿意,也可以使用正则表达式(如果您的目标浏览器不支持endsWith);
if (/widget\.json$/.test('widget.json')) {
}
Run Code Online (Sandbox Code Playgroud)
使用正则表达式,您甚至可以提取文件的初始部分;
var widgetInfo = 'asd.widget.json'.match(/^(.*)widget\.json$/)
if (widgetInfo) {
console.log(widgetInfo[1]) // will print `asd.`
}
// similar code to check for `dashboard.json`
Run Code Online (Sandbox Code Playgroud)
编辑:
在您评论的情况下,您可以使用以下正则表达式; /^(.*)widget(\(.+\))?\.json$/.它将以randomstring.widget.json和的形式匹配字符串randomstring.widget(1).json,但不是randomstring.widget().json
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |