我有以下道具{priority}输出“高优先级”,有没有办法我可以简单地将其渲染为“高”?我可以使用标准js还是类似下面的东西?
BitacoraPersona
我该如何解决这个问题?
答案 0 :(得分:2)
如果您希望使用正则表达式来执行此操作,即使“ priority”一词可能存在拼写错误,this expression也会这样做:
(.+)(\s[priorty]+)
它可以简单地使用捕获组来捕获“优先级”之前的所需单词。如果您想为其添加任何边界,这样做会容易得多,尤其是当您的输入字符串发生变化时。
此图显示了表达式的工作方式,您可以在此link中可视化其他表达式:
const regex = /(.+)(\s[priorty]+)/gmi;
const str = `high priority
low priority
medium priority
under-processing pririty
under-processing priority
400-urget priority
400-urget Priority
400-urget PRIority`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
此JavaScript代码段使用简单的100万次for
循环来显示该表达式的性能。
repeat = 1000000;
start = Date.now();
for (var i = repeat; i >= 0; i--) {
var string = "high priority";
var regex = /(.+)(\s[priorty]+)/gmi;
var match = string.replace(regex, "$1");
}
end = Date.now() - start;
console.log("YAAAY! \"" + match + "\" is a match ");
console.log(end / 1000 + " is the runtime of " + repeat + " times benchmark test. ");
答案 1 :(得分:0)
您可以使用substring来获取所需的字符串
button.setTitle("", for: UIControl.State.normal)
所以在您的代码中
var str = 'high priority';
console.log(str.substring(0, 4));
// expected output: "high"
答案 2 :(得分:0)
您可以使用.split()
来获取字符串的唯一第一个元素:
下面的代码将显示字符串的第一个单词:
var getPriority = {priority};
console.log( getPriority.priority.split(' ', 1)[0]);
或者如果优先级值的末尾总是有priority
个单词,您可以摆脱掉它而只是将其作为.split()
的分隔符:
var getPriority = {priority};
console.log( getPriority.priority.split(' priority')[0] );