我如何能够提取标签中的单词,包括单词之间的 space 但之后没有任何其他 space ?
How would I be able to extract the words in my label, including the space in between words but not any additional spaces afterwards?
我目前不知道如何正确使用 HTML 中的标签作为 JS 的变量。
[HTML]
<div> <!--Main Toppings-->
<label for = "mtop"> Main Toppings: </label>
<select name="mainToppings" id = "toppingsoption" required>
<option disabled selected id = 'emptyoption'> -- select an option -- </option>
<option id='pepperoniOverload' class = "mtopchoice">Pepperoni Overload - ₱ 100</option>
<option id='hawaiian' class = "mtopchoice">Hawaiian - ₱ 50</option>
<option id='meatOverload' class = "mtopchoice">Meat Overload - ₱ 125</option>
</select>
</div>
[JavaScript]
var toppings = document.getElementById("toppingsoption");
if (toppings.options[toppings.selectedIndex].id == 'emptyoption') {
var toppingsName = '';
var toppingsValue = 0;
} else {
var toppingsText = toppings.options[toppings.selectedIndex].innerHTML;
var toppingsName = toppingsText.replace(/[^a-z]/gi, '');
var toppingsValue = parseInt(toppingsText.replace(/\D/g,''));
console.log(toppingsName, toppingsValue, "getMainToppings() working");
}
虽然当前代码可以很好地处理 'Hawaiian' 选项,但 'Pepperoni Overload' 和 'Meat Overload' 会干扰我从标签中提取文本的方式。正确的方法是什么,这样我就可以提取 Pepperoni Overload 和 Meat Overload 这两个词,保持单词之间的 space 但不提取后面的附加 spaces?
只需提取所有内容,直到 - 符号。
像下面这样的东西应该可以工作:
/(.*)-/g
然后你可以只提取第一组并且应该得到你想要的。
我目前不知道如何正确使用 HTML 中的标签作为 JS 的变量。
[HTML]
<div> <!--Main Toppings-->
<label for = "mtop"> Main Toppings: </label>
<select name="mainToppings" id = "toppingsoption" required>
<option disabled selected id = 'emptyoption'> -- select an option -- </option>
<option id='pepperoniOverload' class = "mtopchoice">Pepperoni Overload - ₱ 100</option>
<option id='hawaiian' class = "mtopchoice">Hawaiian - ₱ 50</option>
<option id='meatOverload' class = "mtopchoice">Meat Overload - ₱ 125</option>
</select>
</div>
[JavaScript]
var toppings = document.getElementById("toppingsoption");
if (toppings.options[toppings.selectedIndex].id == 'emptyoption') {
var toppingsName = '';
var toppingsValue = 0;
} else {
var toppingsText = toppings.options[toppings.selectedIndex].innerHTML;
var toppingsName = toppingsText.replace(/[^a-z]/gi, '');
var toppingsValue = parseInt(toppingsText.replace(/\D/g,''));
console.log(toppingsName, toppingsValue, "getMainToppings() working");
}
虽然当前代码可以很好地处理 'Hawaiian' 选项,但 'Pepperoni Overload' 和 'Meat Overload' 会干扰我从标签中提取文本的方式。正确的方法是什么,这样我就可以提取 Pepperoni Overload 和 Meat Overload 这两个词,保持单词之间的 space 但不提取后面的附加 spaces?
只需提取所有内容,直到 - 符号。 像下面这样的东西应该可以工作:
/(.*)-/g
然后你可以只提取第一组并且应该得到你想要的。