Improve str length tool

This commit is contained in:
Illya Marchenko 2023-12-14 20:39:52 +02:00
parent 02bc94d10c
commit 6bf9e60c60
Signed by: stuzer05
GPG Key ID: A6ABAAA9268F9F4F

@ -7,13 +7,18 @@
<textarea id="data" v-model="toolData.data" style="height: 150px"></textarea>
</div>
<div class="input-group">
<label for="data_delimiter">Delimiter</label>
<input id="data_delimiter" v-model="toolData.dataDelimiter" placeholder="," type="text">
</div>
<div class="input-group">
<label>Mode</label>
<div>
<input id="count_mode_characters" value="characters" name="count_mode" v-model="toolData.countMode" type="radio"> <label for="count_mode_characters">characters</label><br>
<input id="count_mode_words" value="words" name="count_mode" v-model="toolData.countMode" type="radio"> <label for="count_mode_words">words</label><br>
<input id="count_mode_lines" value="lines" name="count_mode" v-model="toolData.countMode" type="radio"> <label for="count_mode_lines">lines</label>
<input id="count_mode_characters" value="characters" name="count_mode" v-model="toolData.countMode" :disabled="toolData.dataDelimiter.length" type="radio"> <label for="count_mode_characters">characters</label><br>
<input id="count_mode_words" value="words" name="count_mode" v-model="toolData.countMode" :disabled="toolData.dataDelimiter.length" type="radio"> <label for="count_mode_words">words</label><br>
<input id="count_mode_lines" value="lines" name="count_mode" v-model="toolData.countMode" :disabled="toolData.dataDelimiter.length" type="radio"> <label for="count_mode_lines">lines</label>
</div>
</div>
@ -31,19 +36,24 @@ export default {
return {
toolData: {
data: '',
dataDelimiter: '',
countMode: 'characters',
},
};
},
computed: {
toolResult() {
switch (this.toolData.countMode) {
case 'characters':
return this.toolData.data.length;
case 'words':
return this.toolData.data.trim().split(/\s+/).length;
case 'lines':
return this.toolData.data.split('\n').length;
if (this.toolData.dataDelimiter.length) {
return this.toolData.data.split(this.toolData.dataDelimiter).length;
} else {
switch (this.toolData.countMode) {
case 'characters':
return this.toolData.data.length;
case 'words':
return this.toolData.data.trim().split(/\s+/).length;
case 'lines':
return this.toolData.data.split('\n').length;
}
}
},
},