Я разрабатываю надстройка контекстного меню для Firefox. Я пытаюсь получить selectedText и проверить, является ли это числом. Если это число, я использую это числовое значение для дальнейшей обработки.Картинка Regex в контекстном меню Firefox contentScript
Но, я застрял в точке, где я пытаюсь заменить [(,)]
, используя regex in javascript replace
method.
Ниже приводится код, который не может отображать любое число, начиная/кончая (
или )
:
var menuItemLRG = contextMenu.Item({
label: "LRG",
data: "http://myurl/&val=:",
contentScript: 'self.on("click", function (node, data) {' +
' var selectedText = window.getSelection().toString();' +
' var formattedText1 = selectedText.trim();' +
' var formattedText2 = formattedText1.replace(/^[,\[\]()]*/g,"");' +
' var formattedText3 = formattedText2.replace(/[,\[\]()]*$/g,"");' +
' console.log(formattedText3); '+
' var regExp = new RegExp(/^[0-9]+$/);' +
' if (regExp.test(formattedText3) == true) {' +
' console.log("URL to follow :"+data+formattedText3);' +
' window.open(data+formattedText3);' +
' } '+
'});'
});
Приведенный выше код не может заменить (
или )
во входных выборок: (5663812, 11620033)
.
Но испытание ваниль как следующий преуспевает:
<script>
var str = "(2342423,])";
var tmpVal1 = str.replace(/^[,\[\]()]*/g,"");
var tmpVal2 = tmpVal1.replace(/[,\[\]()]*$/g,"");
var regExp = new RegExp(/^[0-9]+$/);
if (regExp.test(tmpVal2) == true) {
alert(tmpVal2);
}
</script>